Index: src/runtime/runtime-test.cc |
diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc |
index 37c9362069428a65e2f324ba6491ef117d514e8b..0d6cb0efdd0dc388fe9f62ef2f009c2ba687ae15 100644 |
--- a/src/runtime/runtime-test.cc |
+++ b/src/runtime/runtime-test.cc |
@@ -664,21 +664,36 @@ RUNTIME_FUNCTION(Runtime_InNewSpace) { |
return isolate->heap()->ToBoolean(isolate->heap()->InNewSpace(obj)); |
} |
-RUNTIME_FUNCTION(Runtime_IsAsmWasmCode) { |
- SealHandleScope shs(isolate); |
- DCHECK(args.length() == 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); |
- |
+static bool IsAsmWasmCode(Isolate* isolate, Handle<JSFunction> function) { |
if (!function->shared()->HasAsmWasmData()) { |
// Doesn't have wasm data. |
- return isolate->heap()->ToBoolean(false); |
+ return false; |
} |
if (function->shared()->code() != |
isolate->builtins()->builtin(Builtins::kInstantiateAsmJs)) { |
// Hasn't been compiled yet. |
- return isolate->heap()->ToBoolean(false); |
+ return false; |
} |
- return isolate->heap()->ToBoolean(true); |
+ return true; |
+} |
+ |
+RUNTIME_FUNCTION(Runtime_IsAsmWasmCode) { |
+ SealHandleScope shs(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); |
+ // TODO(mstarzinger): --always-opt should still allow asm.js->wasm, |
+ // but currently does not. For now, pretend asm.js->wasm is on for |
+ // this case. Be more accurate once this is corrected. |
+ return isolate->heap()->ToBoolean( |
+ ((FLAG_always_opt || FLAG_prepare_always_opt) && FLAG_validate_asm) || |
+ IsAsmWasmCode(isolate, function)); |
+} |
+ |
+RUNTIME_FUNCTION(Runtime_IsNotAsmWasmCode) { |
+ SealHandleScope shs(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); |
+ return isolate->heap()->ToBoolean(!IsAsmWasmCode(isolate, function)); |
} |
#define ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(Name) \ |