function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); } function test(num) { var regexp = /hello world/; var world = /World/; regexp.lastIndex = world; world.lastIndex = regexp; if (num === 0) { OSRExit(); return regexp; } return 42; } noInline(test); for (var i = 0; i < 1e6; ++i) shouldBe(test(1), 42); var regexp = test(0); shouldBe(regexp instanceof RegExp, true); shouldBe(regexp.toString(), "/hello world/"); shouldBe(regexp.lastIndex instanceof RegExp, true); shouldBe(regexp.lastIndex.toString(), "/World/");