OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 1958 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1969 // persist a module_map across multiple top-level module loads, as | 1969 // persist a module_map across multiple top-level module loads, as |
1970 // the current module is left in a "half-instantiated" state. | 1970 // the current module is left in a "half-instantiated" state. |
1971 if (!callback(v8_context, v8_module->GetModuleRequest(i), v8_module, | 1971 if (!callback(v8_context, v8_module->GetModuleRequest(i), v8_module, |
1972 callback_data) | 1972 callback_data) |
1973 .ToLocal(&requested_module)) { | 1973 .ToLocal(&requested_module)) { |
1974 // TODO(adamk): Give this a better error message. But this is a | 1974 // TODO(adamk): Give this a better error message. But this is a |
1975 // misuse of the API anyway. | 1975 // misuse of the API anyway. |
1976 isolate->ThrowIllegalOperation(); | 1976 isolate->ThrowIllegalOperation(); |
1977 return false; | 1977 return false; |
1978 } | 1978 } |
1979 if (!requested_module->Instantiate(v8_context, callback, callback_data)) { | 1979 module->requested_modules()->set(i, *Utils::OpenHandle(*requested_module)); |
| 1980 if (!InstantiateModule(requested_module, v8_context, callback, |
| 1981 callback_data)) { |
1980 return false; | 1982 return false; |
1981 } | 1983 } |
1982 module->requested_modules()->set(i, *Utils::OpenHandle(*requested_module)); | |
1983 } | 1984 } |
1984 | 1985 |
1985 // Resolve imports. | 1986 // Resolve imports. |
1986 for (int i = 0, n = regular_imports->length(); i < n; ++i) { | 1987 for (int i = 0, n = regular_imports->length(); i < n; ++i) { |
1987 i::Handle<i::ModuleInfoEntry> entry( | 1988 i::Handle<i::ModuleInfoEntry> entry( |
1988 i::ModuleInfoEntry::cast(regular_imports->get(i)), isolate); | 1989 i::ModuleInfoEntry::cast(regular_imports->get(i)), isolate); |
1989 i::Handle<i::String> name(i::String::cast(entry->import_name()), isolate); | 1990 i::Handle<i::String> name(i::String::cast(entry->import_name()), isolate); |
1990 int module_request = i::Smi::cast(entry->module_request())->value(); | 1991 int module_request = i::Smi::cast(entry->module_request())->value(); |
1991 if (i::Module::ResolveImport(module, name, module_request).is_null()) { | 1992 if (i::Module::ResolveImport(module, name, module_request).is_null()) { |
1992 return false; | 1993 return false; |
(...skipping 7489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9482 Address callback_address = | 9483 Address callback_address = |
9483 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 9484 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
9484 VMState<EXTERNAL> state(isolate); | 9485 VMState<EXTERNAL> state(isolate); |
9485 ExternalCallbackScope call_scope(isolate, callback_address); | 9486 ExternalCallbackScope call_scope(isolate, callback_address); |
9486 callback(info); | 9487 callback(info); |
9487 } | 9488 } |
9488 | 9489 |
9489 | 9490 |
9490 } // namespace internal | 9491 } // namespace internal |
9491 } // namespace v8 | 9492 } // namespace v8 |
OLD | NEW |