[turbofan] Add missing deopt.
authorjarin <jarin@chromium.org>
Tue, 13 Jan 2015 08:40:39 +0000 (00:40 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 13 Jan 2015 08:40:54 +0000 (08:40 +0000)
BUG=chromium:447567
LOG=n
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/809463005

Cr-Commit-Position: refs/heads/master@{#26033}

src/compiler/linkage.cc
test/mjsunit/compiler/regress-447567.js [new file with mode: 0644]

index fc6b19e..f76bc60 100644 (file)
@@ -179,6 +179,7 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
     case Runtime::kNewObjectFromBound:
     case Runtime::kNewObjectWithAllocationSite:
     case Runtime::kObjectFreeze:
+    case Runtime::kObjectSeal:
     case Runtime::kOwnKeys:
     case Runtime::kParseJson:
     case Runtime::kPrepareStep:
@@ -202,6 +203,7 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
     case Runtime::kStringBuilderJoin:
     case Runtime::kStringMatch:
     case Runtime::kStringReplaceGlobalRegExpWithString:
+    case Runtime::kThrowConstAssignError:
     case Runtime::kThrowNonMethodError:
     case Runtime::kThrowNotDateError:
     case Runtime::kThrowReferenceError:
diff --git a/test/mjsunit/compiler/regress-447567.js b/test/mjsunit/compiler/regress-447567.js
new file mode 100644 (file)
index 0000000..b6dc653
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --turbo-deoptimization
+
+assertThrows(function() {
+  [0].every(function(){ Object.seal((new Int8Array())); });
+})
+
+assertThrows(function() {
+  "use strict";
+  const v = 42;
+  v += 1;
+});