diff options
Diffstat (limited to 'js/src/tests/non262/PrivateName/illegal-in-class-context.js')
-rw-r--r-- | js/src/tests/non262/PrivateName/illegal-in-class-context.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/tests/non262/PrivateName/illegal-in-class-context.js b/js/src/tests/non262/PrivateName/illegal-in-class-context.js new file mode 100644 index 0000000000..3012e4bfe9 --- /dev/null +++ b/js/src/tests/non262/PrivateName/illegal-in-class-context.js @@ -0,0 +1,24 @@ +// |reftest| skip-if(!xulRuntime.shell) + +// Are private fields enabled? +let privateFields = false; +try { + Function('class C { #x; }'); + privateFields = true; +} catch (exc) { + assertEq(exc instanceof SyntaxError, true); +} + +if (!privateFields) { + assertThrowsInstanceOf(() => eval(`class A { #x }`), SyntaxError); + assertThrowsInstanceOf(() => eval(`class A { #x=10 }`), SyntaxError); +} else { + assertThrowsInstanceOf(() => eval(`class A { #x; #x; }`), SyntaxError); +} + +// No computed private fields +assertThrowsInstanceOf( + () => eval(`var x = "foo"; class A { #[x] = 20; }`), SyntaxError); + + +if (typeof reportCompare === 'function') reportCompare(0, 0); |