@@ -14,36 +14,43 @@ import TestsUtils
14
14
@_spi ( _Unicode)
15
15
import Swift
16
16
17
- public let benchmarks = [
18
- BenchmarkInfo (
19
- name: " StringEqualPointerComparison " ,
20
- runFunction: run_StringEqualPointerComparison,
21
- tags: [ . validation, . api, . String] ) ,
22
- BenchmarkInfo (
23
- name: " StringHasPrefixAscii " ,
24
- runFunction: run_StringHasPrefixAscii,
25
- tags: [ . validation, . api, . String] ,
26
- legacyFactor: 10 ) ,
27
- BenchmarkInfo (
28
- name: " StringHasPrefixUnicode " ,
29
- runFunction: run_StringHasPrefixUnicode,
30
- tags: [ . validation, . api, . String] ,
31
- legacyFactor: 1000 ) ,
32
- BenchmarkInfo (
33
- name: " StringHasSuffixAscii " ,
34
- runFunction: run_StringHasSuffixAscii,
35
- tags: [ . validation, . api, . String] ,
36
- legacyFactor: 10 ) ,
37
- BenchmarkInfo (
38
- name: " StringHasSuffixUnicode " ,
39
- runFunction: run_StringHasSuffixUnicode,
40
- tags: [ . validation, . api, . String] ,
41
- legacyFactor: 1000 ) ,
42
- BenchmarkInfo (
43
- name: " StringIterateWords " ,
44
- runFunction: run_iterateWords,
45
- tags: [ . validation, . String] ) ,
46
- ]
17
+ public var benchmarks : [ BenchmarkInfo ] {
18
+ var result = [
19
+ BenchmarkInfo (
20
+ name: " StringEqualPointerComparison " ,
21
+ runFunction: run_StringEqualPointerComparison,
22
+ tags: [ . validation, . api, . String] ) ,
23
+ BenchmarkInfo (
24
+ name: " StringHasPrefixAscii " ,
25
+ runFunction: run_StringHasPrefixAscii,
26
+ tags: [ . validation, . api, . String] ,
27
+ legacyFactor: 10 ) ,
28
+ BenchmarkInfo (
29
+ name: " StringHasPrefixUnicode " ,
30
+ runFunction: run_StringHasPrefixUnicode,
31
+ tags: [ . validation, . api, . String] ,
32
+ legacyFactor: 1000 ) ,
33
+ BenchmarkInfo (
34
+ name: " StringHasSuffixAscii " ,
35
+ runFunction: run_StringHasSuffixAscii,
36
+ tags: [ . validation, . api, . String] ,
37
+ legacyFactor: 10 ) ,
38
+ BenchmarkInfo (
39
+ name: " StringHasSuffixUnicode " ,
40
+ runFunction: run_StringHasSuffixUnicode,
41
+ tags: [ . validation, . api, . String] ,
42
+ legacyFactor: 1000 ) ,
43
+ ]
44
+
45
+ if #available( macOS 15 . 0 , iOS 18 . 0 , watchOS 11 . 0 , tvOS 18 . 0 , visionOS 2 . 0 , * ) {
46
+ result. append (
47
+ BenchmarkInfo (
48
+ name: " StringIterateWords " ,
49
+ runFunction: run_iterateWords,
50
+ tags: [ . validation, . String] ) )
51
+ }
52
+ return result
53
+ }
47
54
48
55
// FIXME(string)
49
56
public func run_StringHasPrefixAscii( _ n: Int ) {
@@ -1644,11 +1651,8 @@ architecture on Linux.</p>
1644
1651
1645
1652
extension String {
1646
1653
@inline ( never)
1647
- @available ( SwiftStdlib 5 . 9 , * )
1654
+ @available ( macOS 15 . 0 , iOS 18 . 0 , watchOS 11 . 0 , tvOS 18 . 0 , visionOS 2 . 0 , * )
1648
1655
var _words : [ Substring ] {
1649
- guard #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) else {
1650
- fatalError ( " Can't run this benchmark " )
1651
- }
1652
1656
var result : [ Substring ] = [ ]
1653
1657
1654
1658
var i = startIndex
@@ -1666,6 +1670,7 @@ extension String {
1666
1670
}
1667
1671
}
1668
1672
1673
+ @available ( macOS 15 . 0 , iOS 18 . 0 , watchOS 11 . 0 , tvOS 18 . 0 , visionOS 2 . 0 , * )
1669
1674
public func run_iterateWords( _ n: Int ) {
1670
1675
for _ in 0 ..< n {
1671
1676
blackHole ( swiftOrgHTML. _words)
0 commit comments