Fix mjsunit's assertOptimized and assertUnoptimized.
authoryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Jun 2014 08:01:13 +0000 (08:01 +0000)
committeryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Jun 2014 08:01:13 +0000 (08:01 +0000)
This was broken some time ago by a refactor.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

test/mjsunit/mjsunit-assertoptimized.js [new file with mode: 0644]
test/mjsunit/mjsunit.js

diff --git a/test/mjsunit/mjsunit-assertoptimized.js b/test/mjsunit/mjsunit-assertoptimized.js
new file mode 100644 (file)
index 0000000..d395012
--- /dev/null
@@ -0,0 +1,17 @@
+// Copyright 2014 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: --allow-natives-syntax --crankshaft
+
+function f() {};
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
+assertOptimized(f);
+assertThrows(function() { assertUnoptimized(f); });
+%DeoptimizeFunction(f);
+assertUnoptimized(f);
+assertThrows(function() { assertOptimized(f); });
+quit();  // Prevent stress runs.
index bcd4913..0430279 100644 (file)
@@ -391,9 +391,8 @@ var assertUnoptimized;
       } catch (e) {
         throw new Error("natives syntax not allowed");
       }
-    } else {
-      OptimizationStatusImpl(fun, sync_opt);
     }
+    return OptimizationStatusImpl(fun, sync_opt);
   }
 
   assertUnoptimized = function assertUnoptimized(fun, sync_opt, name_opt) {