function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
{ | |
let object = { | |
n() | |
{ | |
return 42; | |
} | |
}; | |
let derived = { | |
m() | |
{ | |
return eval("super.n()"); | |
} | |
}; | |
Object.setPrototypeOf(derived, object); | |
shouldBe(derived.m(), 42); | |
// Cached. | |
shouldBe(derived.m(), 42); | |
} | |
{ | |
let object = { | |
l() | |
{ | |
return 42; | |
} | |
}; | |
let derived = { | |
m() | |
{ | |
return eval("super.l()"); | |
} | |
}; | |
Object.setPrototypeOf(derived, object); | |
shouldBe(derived.m(), 42); | |
// Cached. | |
shouldBe(derived.m(), 42); | |
class Parent { | |
l() | |
{ | |
return 55; | |
} | |
} | |
class Derived extends Parent { | |
m() | |
{ | |
return eval("super.l()"); | |
} | |
} | |
let instance = new Derived(); | |
// Under the strict code, not cached. | |
shouldBe(instance.l(), 55); | |
shouldBe(instance.l(), 55); | |
} |