Cache optimization status getter in mjsunit.js
authoryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 27 May 2014 12:52:15 +0000 (12:52 +0000)
committeryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 27 May 2014 12:52:15 +0000 (12:52 +0000)
R=mvstanton@chromium.org

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

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

test/mjsunit/mjsunit.js

index a5f65e2..121b7e0 100644 (file)
@@ -371,11 +371,18 @@ var assertUnoptimized;
     throw new MjsUnitAssertionError(message);
   };
 
+  var OptimizationStatusImpl = undefined;
+
   var OptimizationStatus = function(fun, sync_opt) {
-    try {
-      return eval("%GetOptimizationStatus(fun, sync_opt);");
-    } catch (e) {
-      throw new Error("natives syntax not allowed");
+    if (OptimizationStatusImpl === undefined) {
+      try {
+        OptimizationStatusImpl = new Function(
+            "fun", "sync", "return %GetOptimizationStatus(fun, sync);");
+      } catch (e) {
+        throw new Error("natives syntax not allowed");
+      }
+    } else {
+      OptimizationStatusImpl(fun, sync_opt);
     }
   }