//@ requireOptions("--forcePolyProto=1", "--useLLInt=0", "--repatchBufferingCountdown=0") | |
function assert_eq(a, b) { | |
} | |
noInline(assert_eq) | |
class A { | |
set x(v) { | |
if (v == 1) { | |
Object.defineProperty(A.prototype, "x", { | |
get: function() { | |
return 42 | |
}, | |
set: undefined | |
}); | |
} | |
if (v > 1) | |
throw new Error() | |
} | |
} | |
class B extends A { | |
set y(v) {} | |
set y1(v) {} | |
set y2(v) {} | |
} | |
class C extends B { | |
} | |
let a = new C(); | |
for (let i = 0; i < 30; i++) { | |
a.x = i; | |
assert_eq(a.x, i == 0 ? undefined : 42) | |
} | |