| 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) \
|
|
|