| function assert(testedValue, msg) { |
| // RegExp.prototype with overridden exec. |
| let origExec = RegExp.prototype.exec; |
| Object.defineProperty(RegExp.prototype, "exec", { |
| return origExec.call(this, str); |
| assert(accesses == "", "unexpected call to overridden props"); |
| let result = RegExp.prototype.test.call(obj, "searchme"); |
| assert(accesses == "exec", "Property accesses do not match expectation"); |
| assert(result === true, "Unexpected result"); |
| assert(accesses == "", "unexpected call to overridden props"); |
| result = RegExp.prototype.test.call(obj, "searchme"); |
| assert(accesses == "exec", "Property accesses do not match expectation"); |
| assert(result === false, "Unexpected result"); |