Test262 Updates
TC39 2019-10
Test262 Updates
@bocoup
bocoup.com
Coverage
Test262 Updates
@bocoup
bocoup.com
Coverage
Test262 Updates
@bocoup
bocoup.com
Oddities #1
var stringSet;
class C {
static get 'def\u0061ult'() { return 'get string'; }
static set 'def\u0061ult'(param) { stringSet = param; }
}
assert.sameValue(C['default'], 'get string');
C['default'] = 'set string';
assert.sameValue(stringSet, 'set string');
`default` identifier in accessor names
Test262 Updates
@bocoup
bocoup.com
Oddities #2
var y = { prot\u0065cted: x } = { protected: 42 };
assert.sameValue(x, 42, 'property exists');
assert.sameValue(y['protected'], 42, 'assignment successful');
��// Parse SyntaxError:�var z = { prot\u0065cted } = { protected: 42 };
Valid identifier names also listed as reserved words
Test262 Updates
@bocoup
bocoup.com
Oddities #3
[{ set prop(val) { console.log(val); } }.prop = 12 ] = [ 1 ];
({ obj: { set prop(val) { console.log(val); } }.prop = 12 } = { obj: 1 });
({ obj: { set prop(val) { console.log(val); } }.prop } = { obj: 1 });
[{ set prop(val) { console.log(val); } }.prop ] = [ 1 ];
dstr-assignment tests for object literal accessor property targets
Test262 Updates
@bocoup
bocoup.com
Oddities #4
Promise.prototype.y = 43;
var res = await Promise.reject(undefined)?.y;
assert.sameValue(res, 43);
Async Optional Chaining
Test262 Updates
@bocoup
bocoup.com
Oddities #5
var x;
do break ; while (0) x = 42;
assert.sameValue(x, 42);
x = 0;
do do do ; while (x) while (x) while (x) x = 39;
assert.sameValue(x, 39);
ASI after do-while
Test262 Updates
@bocoup
bocoup.com
Mike's auditing
Test262 Updates
@bocoup
bocoup.com
Test262.report
Test262 Updates
@bocoup
bocoup.com
Questions?
Test262 Updates
@bocoup
bocoup.com