jsc shell's noFTL utility test function should be more robust.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2018 18:42:07 +0000 (18:42 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Jul 2018 18:42:07 +0000 (18:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187704
<rdar://problem/42231988>

Reviewed by Michael Saboff and Keith Miller.

* jsc.cpp:
(functionNoFTL):
- only setNeverFTLOptimize() if the function is actually a JS function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/jsc.cpp

index 7bbb04e..9d4ea3b 100644 (file)
@@ -1,3 +1,15 @@
+2018-07-16  Mark Lam  <mark.lam@apple.com>
+
+        jsc shell's noFTL utility test function should be more robust.
+        https://bugs.webkit.org/show_bug.cgi?id=187704
+        <rdar://problem/42231988>
+
+        Reviewed by Michael Saboff and Keith Miller.
+
+        * jsc.cpp:
+        (functionNoFTL):
+        - only setNeverFTLOptimize() if the function is actually a JS function.
+
 2018-07-15  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [GLIB] Add API to evaluate code using a given object to store global symbols
index a7a110b..da2e71c 100644 (file)
@@ -1440,12 +1440,11 @@ EncodedJSValue JSC_HOST_CALL functionNoDFG(ExecState* exec)
 
 EncodedJSValue JSC_HOST_CALL functionNoFTL(ExecState* exec)
 {
-    VM& vm = exec->vm();
-    if (JSFunction* function = jsDynamicCast<JSFunction*>(vm, exec->argument(0))) {
-        FunctionExecutable* executable = function->jsExecutable();
-        executable->setNeverFTLOptimize(true);
+    if (exec->argumentCount()) {
+        FunctionExecutable* executable = getExecutableForFunction(exec->argument(0));
+        if (executable)
+            executable->setNeverFTLOptimize(true);
     }
-
     return JSValue::encode(jsUndefined());
 }