diff options
Diffstat (limited to 'js/src/tests/test262/language/statements/class/elements/fields-computed-name-static-propname-prototype.js')
-rw-r--r-- | js/src/tests/test262/language/statements/class/elements/fields-computed-name-static-propname-prototype.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/class/elements/fields-computed-name-static-propname-prototype.js b/js/src/tests/test262/language/statements/class/elements/fields-computed-name-static-propname-prototype.js new file mode 100644 index 0000000000..5fba6d2d6c --- /dev/null +++ b/js/src/tests/test262/language/statements/class/elements/fields-computed-name-static-propname-prototype.js @@ -0,0 +1,32 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: static class fields forbid PropName 'prototype' (no early error -- PropName of ComputedPropertyName) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-static-fields-public] +info: | + 14.6.13 Runtime Semantics: ClassDefinitionEvaluation + + ... + 16. Perform MakeConstructor(F, false, proto). + ... + + 9.2.10 MakeConstructor ( F [ , writablePrototype [ , prototype ] ] ) + + 6. Perform ! DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, + [[Writable]]: writablePrototype, [[Enumerable]]: false, [[Configurable]]: false }). +---*/ + +assert.throws(TypeError, function() { + class C { + static ['prototype'] = 42; + } +}); + +assert.throws(TypeError, function() { + class C { + static ['prototype']; + } +}); + +reportCompare(0, 0); |