mirror of
https://github.com/tc39/test262.git
synced 2025-05-05 15:30:32 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
51 lines
928 B
JavaScript
51 lines
928 B
JavaScript
function assert(a) {
|
|
if (!a)
|
|
throw new Error("Bad Assertion!");
|
|
}
|
|
|
|
class A {
|
|
constructor(prop) {
|
|
this.prop = prop;
|
|
}
|
|
call() {
|
|
return this.prop;
|
|
}
|
|
apply() {
|
|
return this.prop;
|
|
}
|
|
}
|
|
|
|
class B extends A {
|
|
testSuper() {
|
|
assert(super.call() == 'value');
|
|
assert(super.apply() == 'value');
|
|
}
|
|
}
|
|
|
|
const obj = new B('value')
|
|
obj.testSuper()
|
|
|
|
class C {}
|
|
|
|
class D extends C {
|
|
testSuper() {
|
|
try {
|
|
super.call();
|
|
assert(false);
|
|
} catch(e) {
|
|
assert(e.message == "super.call is not a function. (In 'super.call()', 'super.call' is undefined)");
|
|
}
|
|
|
|
try {
|
|
super.apply();
|
|
assert(false);
|
|
} catch(e) {
|
|
assert(e.message == "super.apply is not a function. (In 'super.apply()', 'super.apply' is undefined)");
|
|
}
|
|
}
|
|
}
|
|
|
|
let d = new D();
|
|
d.testSuper();
|
|
|