Index: test/mjsunit/parallel-recompilation.js |
diff --git a/test/mjsunit/regress/regress-crbug-168545.js b/test/mjsunit/parallel-recompilation.js |
similarity index 78% |
copy from test/mjsunit/regress/regress-crbug-168545.js |
copy to test/mjsunit/parallel-recompilation.js |
index acc065e41101325dd9b105f73e50748b1c9cff13..75403656f6a5b63e259251631521d34b85fdb2f2 100644 |
--- a/test/mjsunit/regress/regress-crbug-168545.js |
+++ b/test/mjsunit/parallel-recompilation.js |
@@ -25,10 +25,20 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+// Flags: --allow-natives-syntax |
+// Flags: --parallel-recompilation --manual-parallel-recompilation |
+ |
+function f(foo) { return foo.bar(); } |
+ |
var o = {}; |
-Object.defineProperty(o, "length", { get: function() { throw "bail"; }}); |
-assertThrows("new Int16Array(o);"); |
+o.__proto__ = { __proto__: { bar: function() { return 1; } } }; |
+ |
+assertEquals(1, f(o)); |
+assertEquals(1, f(o)); |
+ |
+%ForceParallelRecompile(f); |
+// Change the prototype chain during optimization. |
+o.__proto__.__proto__ = { bar: function() { return 2; } }; |
+%InstallRecompiledCode(f); |
-var a = []; |
-Object.defineProperty(a, "0", { get: function() { throw "bail"; }}); |
-assertThrows("new Int16Array(a);"); |
+assertEquals(2, f(o)); |