diff options
Diffstat (limited to '')
-rw-r--r-- | js/src/tests/test262/language/statements/class/poisoned-underscore-proto.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/class/poisoned-underscore-proto.js b/js/src/tests/test262/language/statements/class/poisoned-underscore-proto.js new file mode 100644 index 0000000000..5f71e08af1 --- /dev/null +++ b/js/src/tests/test262/language/statements/class/poisoned-underscore-proto.js @@ -0,0 +1,30 @@ +// Copyright (C) 2019 Alexey Shvayka. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: prod-ClassDeclaration +description: > + ClassDeclaration should directly set [[Prototype]] internal slot. +info: | + ClassDefinitionEvaluation + + [...] + 7. Let proto be ObjectCreate(protoParent). + + ObjectCreate ( proto [ , internalSlotsList ] ) + + [...] + 4. Set obj.[[Prototype]] to proto. +features: [class] +---*/ + +Object.defineProperty(Object.prototype, '__proto__', { + set: function() { + throw new Test262Error('should not be called'); + }, +}); + +class A extends Array {} + +assert.sameValue(new A(1).length, 1); + +reportCompare(0, 0); |