diff options
Diffstat (limited to 'js/src/tests/test262/language/statements/class/definition/prototype-getter.js')
-rw-r--r-- | js/src/tests/test262/language/statements/class/definition/prototype-getter.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/class/definition/prototype-getter.js b/js/src/tests/test262/language/statements/class/definition/prototype-getter.js new file mode 100644 index 0000000000..cbfe6ac1b7 --- /dev/null +++ b/js/src/tests/test262/language/statements/class/definition/prototype-getter.js @@ -0,0 +1,33 @@ +// Copyright (C) 2014 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 14.5 +description: > + class prototype getter +---*/ +var calls = 0; +var Base = function() {}.bind(); +Object.defineProperty(Base, 'prototype', { + get: function() { + calls++; + return null; + }, + configurable: true +}); +class C extends Base {} +assert.sameValue(calls, 1, "The value of `calls` is `1`"); + +calls = 0; +Object.defineProperty(Base, 'prototype', { + get: function() { + calls++; + return 42; + }, + configurable: true +}); +assert.throws(TypeError, function() { + class C extends Base {} +}); +assert.sameValue(calls, 1, "The value of `calls` is `1`"); + +reportCompare(0, 0); |