v8/test/mjsunit/strong/super.js
arv 353b40e980 [es6] Remove harmony-classes flag
Move class tests to es6 directory

BUG=v8:3330
LOG=N
R=adamk

Review URL: https://codereview.chromium.org/1213813003

Cr-Commit-Position: refs/heads/master@{#29336}
2015-06-26 21:16:58 +00:00

63 lines
1.3 KiB
JavaScript

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