| // 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']; |
| } |
| }); |