@@ -41,78 +41,56 @@ function span(text) {
41
41
}
42
42
43
43
function createUIForMeasurementMethod ( ) {
44
- let check = document . createElement ( "input" ) ;
45
- check . type = "checkbox" ;
46
- check . id = "measurement-method" ;
47
- check . checked = params . measurementMethod === "raf" ;
48
-
49
- check . onchange = ( ) => {
50
- params . measurementMethod = check . checked ? "raf" : "timer" ;
51
- updateURL ( ) ;
52
- } ;
53
-
54
- let label = document . createElement ( "label" ) ;
55
- label . append ( check , " " , span ( "rAF timing" ) ) ;
56
-
57
- return label ;
44
+ return createCheckboxUI ( "rAF timing" , params . measurementMethod === "raf" , ( isChecked ) => {
45
+ params . measurementMethod = isChecked ? "raf" : "timer" ;
46
+ } ) ;
58
47
}
59
48
60
49
function createUIForWarmupSuite ( ) {
61
- let check = document . createElement ( "input" ) ;
62
- check . type = "checkbox" ;
63
- check . id = "warmup-suite" ;
64
- check . checked = ! ! params . useWarmupSuite ;
50
+ return createCheckboxUI ( "Use Warmup Suite" , params . useWarmupSuite , ( isChecked ) => {
51
+ params . useWarmupSuite = isChecked ;
52
+ } ) ;
53
+ }
65
54
66
- check . onchange = ( ) => {
67
- params . useWarmupSuite = check . checked ;
55
+ function createCheckboxUI ( labelValue , initialValue , paramsUpdateCallback ) {
56
+ const checkbox = document . createElement ( "input" ) ;
57
+ checkbox . type = "checkbox" ;
58
+ checkbox . checked = ! ! initialValue ;
59
+ checkbox . onchange = ( ) => {
60
+ paramsUpdateCallback ( checkbox . checked ) ;
68
61
updateURL ( ) ;
69
62
} ;
70
63
71
- let label = document . createElement ( "label" ) ;
72
- label . append ( check , " " , span ( "Use Warmup Suite" ) ) ;
64
+ const label = document . createElement ( "label" ) ;
65
+ label . append ( checkbox , " " , span ( labelValue ) ) ;
73
66
74
67
return label ;
75
68
}
76
69
77
70
function createUIForIterationCount ( ) {
78
- const { range, label } = createTimeRangeUI ( "Iterations: " , params . iterationCount , "#" , 1 , 200 ) ;
79
- range . onchange = ( ) => {
80
- params . iterationCount = parseInt ( range . value ) ;
81
- updateURL ( ) ;
82
- } ;
83
- return label ;
71
+ return createTimeRangeUI ( "Iterations: " , "iterationCount" , "#" , 1 , 200 ) ;
84
72
}
85
73
86
74
function createUIForWarmupBeforeSync ( ) {
87
- const { range, label } = createTimeRangeUI ( "Warmup time: " , params . warmupBeforeSync ) ;
88
- range . onchange = ( ) => {
89
- params . warmupBeforeSync = parseInt ( range . value ) ;
90
- updateURL ( ) ;
91
- } ;
92
- return label ;
75
+ return createTimeRangeUI ( "Warmup time: " , "warmupBeforeSync" ) ;
93
76
}
94
77
95
78
function createUIForSyncStepDelay ( ) {
96
- const { range, label } = createTimeRangeUI ( "Sync step delay: " , params . waitBeforeSync ) ;
97
- range . onchange = ( ) => {
98
- params . waitBeforeSync = parseInt ( range . value ) ;
99
- updateURL ( ) ;
100
- } ;
101
- return label ;
79
+ return createTimeRangeUI ( "Sync step delay: " , "waitBeforeSync" ) ;
102
80
}
103
81
104
- function createTimeRangeUI ( labelText , initialValue , unit = "ms" , min = 0 , max = 1000 ) {
82
+ function createTimeRangeUI ( labelText , paramKey , unit = "ms" , min = 0 , max = 1000 ) {
105
83
const range = document . createElement ( "input" ) ;
106
84
range . type = "range" ;
107
85
range . min = min ;
108
86
range . max = max ;
109
- range . value = initialValue ;
87
+ range . value = params [ paramKey ] ;
110
88
111
89
const rangeValueAndUnit = document . createElement ( "span" ) ;
112
90
rangeValueAndUnit . className = "range-label-data" ;
113
91
114
92
const rangeValue = document . createElement ( "span" ) ;
115
- rangeValue . textContent = initialValue ;
93
+ rangeValue . textContent = params [ paramKey ] ;
116
94
rangeValueAndUnit . append ( rangeValue , " " , unit ) ;
117
95
118
96
const label = document . createElement ( "label" ) ;
@@ -121,8 +99,12 @@ function createTimeRangeUI(labelText, initialValue, unit = "ms", min = 0, max =
121
99
range . oninput = ( ) => {
122
100
rangeValue . textContent = range . value ;
123
101
} ;
102
+ range . onchange = ( ) => {
103
+ params [ paramKey ] = parseInt ( range . value ) ;
104
+ updateURL ( ) ;
105
+ } ;
124
106
125
- return { range , label } ;
107
+ return label ;
126
108
}
127
109
128
110
function createUIForSuites ( ) {
0 commit comments