// Make sure that we don't ToString the second argument until /after/ doing // the appropriate subclassing lookups var didLookup = false; var re = /a/; var flags = { toString() { assertEq(didLookup, true); return "g"; } }; var newRe = Reflect.construct(RegExp, [re, flags], Object.defineProperty(function(){}.bind(null), "prototype", { get() { didLookup = true; return RegExp.prototype; } })); assertEq(Object.getPrototypeOf(newRe), RegExp.prototype); assertEq(didLookup, true); if (typeof reportCompare === 'function') reportCompare(0,0,"OK");