Chromium Code Reviews| Index: src/objects.cc |
| diff --git a/src/objects.cc b/src/objects.cc |
| index 5a4143b086403aa92d1ed6b87196705edf7a273c..a8b25d2a8002cf2a186f81268ecf91d25e843c31 100644 |
| --- a/src/objects.cc |
| +++ b/src/objects.cc |
| @@ -19907,7 +19907,6 @@ MaybeHandle<Cell> Module::ResolveExport(Handle<Module> module, |
| if (object->IsModuleInfoEntry()) { |
| // Not yet resolved indirect export. |
| Handle<ModuleInfoEntry> entry = Handle<ModuleInfoEntry>::cast(object); |
| - int module_request = Smi::cast(entry->module_request())->value(); |
| Handle<String> import_name(String::cast(entry->import_name()), isolate); |
| Handle<Script> script( |
| Script::cast(JSFunction::cast(module->code())->shared()->script()), |
| @@ -19915,8 +19914,8 @@ MaybeHandle<Cell> Module::ResolveExport(Handle<Module> module, |
| MessageLocation new_loc(script, entry->beg_pos(), entry->end_pos()); |
| Handle<Cell> cell; |
| - if (!ResolveImport(module, import_name, module_request, new_loc, true, |
| - resolve_set) |
| + if (!ResolveImport(module, import_name, entry->module_request(), new_loc, |
| + true, resolve_set) |
| .ToHandle(&cell)) { |
| DCHECK(isolate->has_pending_exception()); |
| return MaybeHandle<Cell>(); |
| @@ -19953,7 +19952,6 @@ MaybeHandle<Cell> Module::ResolveExportUsingStarExports( |
| if (!entry->export_name()->IsUndefined(isolate)) { |
| continue; // Indirect export. |
| } |
| - int module_request = Smi::cast(entry->module_request())->value(); |
| Handle<Script> script( |
| Script::cast(JSFunction::cast(module->code())->shared()->script()), |
| @@ -19961,7 +19959,7 @@ MaybeHandle<Cell> Module::ResolveExportUsingStarExports( |
| MessageLocation new_loc(script, entry->beg_pos(), entry->end_pos()); |
| Handle<Cell> cell; |
| - if (ResolveImport(module, name, module_request, new_loc, false, |
| + if (ResolveImport(module, name, entry->module_request(), new_loc, false, |
| resolve_set) |
| .ToHandle(&cell)) { |
| if (unique_cell.is_null()) unique_cell = cell; |
| @@ -20014,9 +20012,10 @@ bool Module::Instantiate(Handle<Module> module, v8::Local<v8::Context> context, |
| // Set up local exports. |
| Handle<FixedArray> regular_exports(module_info->regular_exports(), isolate); |
| - for (int i = 0, n = regular_exports->length(); i < n; i += 2) { |
| + for (int i = 0, n = regular_exports->length(); i < n; i += 3) { |
| + // TODO(neis): Make this more robust. |
|
adamk
2016/10/31 18:25:04
Related to robustness, seems like this loop should
neis
2016/11/03 10:43:48
Sure, that's part of it.
|
| Handle<FixedArray> export_names( |
| - FixedArray::cast(regular_exports->get(i + 1)), isolate); |
| + FixedArray::cast(regular_exports->get(i + 2)), isolate); |
| CreateExport(module, export_names); |
| } |
| @@ -20064,13 +20063,13 @@ bool Module::Instantiate(Handle<Module> module, v8::Local<v8::Context> context, |
| Handle<ModuleInfoEntry> entry( |
| ModuleInfoEntry::cast(regular_imports->get(i)), isolate); |
| Handle<String> name(String::cast(entry->import_name()), isolate); |
| - int module_request = Smi::cast(entry->module_request())->value(); |
| Handle<Script> script( |
| Script::cast(JSFunction::cast(module->code())->shared()->script()), |
| isolate); |
| MessageLocation loc(script, entry->beg_pos(), entry->end_pos()); |
| ResolveSet resolve_set(&zone); |
| - if (ResolveImport(module, name, module_request, loc, true, &resolve_set) |
| + if (ResolveImport(module, name, entry->module_request(), loc, true, |
| + &resolve_set) |
| .is_null()) { |
| return false; |
| } |
| @@ -20154,9 +20153,8 @@ void FetchStarExports(Handle<Module> module, Zone* zone, |
| continue; // Indirect export. |
| } |
| - int module_request = Smi::cast(entry->module_request())->value(); |
| Handle<Module> requested_module( |
| - Module::cast(module->requested_modules()->get(module_request)), |
| + Module::cast(module->requested_modules()->get(entry->module_request())), |
| isolate); |
| // Recurse. |