|
203 | 203 | if (debug.length) {dom.debug.innerHTML = debug.join("<br>")}
|
204 | 204 | }
|
205 | 205 |
|
206 |
| - let countTZP = 0, expectTZP = 86, maxVer = 135, oTZP = {}, oResults = {} |
| 206 | + let countTZP = 0, expectTZP = 87, maxVer = 136, oTZP = {}, oResults = {} |
207 | 207 | function run_tzp() {
|
208 | 208 | // start global timer
|
209 | 209 | gTZP = performance.now()
|
|
265 | 265 | }
|
266 | 266 | }
|
267 | 267 |
|
| 268 | + // 136: 1939533 |
| 269 | + // pref enabled since FF132: javascript.options.experimental.regexp_modifiers |
| 270 | + // note: TB slider's `javascript.options.native_regexp` (requires restart) has no effect |
| 271 | + let t136 = performance.now(), ver136 |
| 272 | + try { |
| 273 | + ver136 = eval("/(?i:[A-Z]{4})/.test('abcd')") |
| 274 | + } catch(e) { |
| 275 | + // FF131 or lower: SyntaxError: invalid regexp group |
| 276 | + console.log(e) |
| 277 | + } |
| 278 | + rec(136, 136, "1939533", ver136, performance.now()-t136, 'p') // 0.02ms |
| 279 | + |
268 | 280 | // 135: 1930464
|
269 | 281 | let t135 = performance.now(), ver135
|
270 | 282 | try {
|
271 | 283 | // returns 2 in FF52 but lets avoid any possible old-timey regressions/changes
|
272 | 284 | // tested FF115-135
|
273 |
| - if (CanvasRenderingContext2D.prototype.hasOwnProperty("letterSpacing")) { // FF115+ |
| 285 | + if (CanvasRenderingContext2D.prototype.hasOwnProperty('letterSpacing')) { // FF115+ |
274 | 286 | let test135 = new Intl.NumberFormat('en-US', {style:'currency', currency:'USD', notation:'scientific'})
|
275 | 287 | ver135 = 0 == test135.resolvedOptions().minimumFractionDigits
|
276 | 288 | }
|
|
281 | 293 | let t134 = performance.now(), ver134
|
282 | 294 | try {
|
283 | 295 | // avoid old timey false positives e.g FF78-109
|
284 |
| - if (CanvasRenderingContext2D.prototype.hasOwnProperty("letterSpacing")) { // FF115+ |
| 296 | + if (CanvasRenderingContext2D.prototype.hasOwnProperty('letterSpacing')) { // FF115+ |
285 | 297 | ver134 = '$1.00' == (1).toLocaleString('en-CA', {style: 'currency', currencyDisplay: 'narrowSymbol', currency: 'USD'})
|
286 | 298 | }
|
287 | 299 | } catch(e) {}
|
|
755 | 767 | }
|
756 | 768 | run_tzp()
|
757 | 769 |
|
758 |
| - let countOther = 0, expectOther = 61, oOther = {} |
| 770 | + let countOther = 0, expectOther = 62, oOther = {} |
759 | 771 | function run_other() {
|
760 | 772 | // start global timer
|
761 | 773 | gOther = performance.now()
|
|
773 | 785 | }
|
774 | 786 | }
|
775 | 787 |
|
| 788 | + // 135: 1775215 |
| 789 | + let t135a = performance.now(), ver135a |
| 790 | + try { |
| 791 | + eval('var else') |
| 792 | + } catch(e) { |
| 793 | + // SyntaxError: missing variable name, got keyword 'else' |
| 794 | + ver135a = (e+'').includes('else') |
| 795 | + } |
| 796 | + rec(135.1, 135, "1775215", ver135a, performance.now()-t135a) // 0.05ms |
| 797 | + |
776 | 798 | // 135: 1930466
|
777 | 799 | let t135 = performance.now(), ver135 = false
|
778 | 800 | try {
|
|
0 commit comments