diff options
Diffstat (limited to 'deps/v8/test/mjsunit/strong/super.js')
-rw-r--r-- | deps/v8/test/mjsunit/strong/super.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/strong/super.js b/deps/v8/test/mjsunit/strong/super.js new file mode 100644 index 0000000000..bd289f204f --- /dev/null +++ b/deps/v8/test/mjsunit/strong/super.js @@ -0,0 +1,62 @@ +// Copyright 2015 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --strong-mode --allow-natives-syntax + +'use strong'; + + +function desc(obj, n) { + return Object.getOwnPropertyDescriptor(obj, n); +} + + +(function TestClass() { + class C { + m() { + super.x; + } + get x() { + super.x; + } + set y(_) { + super.x; + } + static m() { + super.x; + } + static get x() { + super.x; + } + static set y(_) { + super.x; + } + } + + assertEquals(C.prototype, C.prototype.m[%HomeObjectSymbol()]); + assertEquals(C.prototype, desc(C.prototype, 'x').get[%HomeObjectSymbol()]); + assertEquals(C.prototype, desc(C.prototype, 'y').set[%HomeObjectSymbol()]); + assertEquals(C, C.m[%HomeObjectSymbol()]); + assertEquals(C, desc(C, 'x').get[%HomeObjectSymbol()]); + assertEquals(C, desc(C, 'y').set[%HomeObjectSymbol()]); +})(); + + +(function TestObjectLiteral() { + let o = { + m() { + super.x; + }, + get x() { + super.x; + }, + set y(_) { + super.x; + } + }; + + assertEquals(o, o.m[%HomeObjectSymbol()]); + assertEquals(o, desc(o, 'x').get[%HomeObjectSymbol()]); + assertEquals(o, desc(o, 'y').set[%HomeObjectSymbol()]); +})(); |