hasnativemethodpure-optimization.js (732B)
1 load(libdir + "asserts.js"); 2 3 let string = Object.defineProperty(new String("123"), "valueOf", { 4 get: function() { throw "get-valueOf"; } 5 }); 6 assertThrowsValue(() => "" + string, "get-valueOf"); 7 8 string = Object.defineProperty(new String("123"), "toString", { 9 get: function() { throw "get-toString"; } 10 }); 11 assertThrowsValue(() => string.toLowerCase(), "get-toString"); 12 13 string = Object.defineProperty(new String("123"), Symbol.toPrimitive, { 14 get: function() { throw "get-toPrimitive"; } 15 }); 16 assertThrowsValue(() => string.toLowerCase(), "get-toPrimitive"); 17 18 let number = Object.defineProperty(new Number(123), "valueOf", { 19 get: function() { throw "get-valueOf"; } 20 }); 21 assertThrowsValue(() => +number, "get-valueOf");