a8609e06b7
The {CodeSpaceWriteScope} in {InstanceBuilder::Build} was kept open while processing imports, which could compile another wasm module via {compiler::ResolveWasmImportCall} and {WasmEngine::SyncCompileTranslatedAsmJs}. This leads to errors since {CodeSpaceWriteScope}s for different modules cannot be held open at the same time. This CL fixes that by only opening the {CodeSpaceWriteScope} for the actual compilation of import wrappers. Drive-by: Only call {ProcessImports} if there are imports to be processed, to avoid some of the overhead of {ProcessImports} and {CompileImportWrappers}. R=jkummerow@chromium.org Bug: chromium:1239522 Change-Id: Ifbaf64a4be92088ae4a3fd7e9700a33397b2a967 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097283 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#76311}
17 lines
375 B
JavaScript
17 lines
375 B
JavaScript
// Copyright 2021 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
var asm = function(global) {
|
|
'use asm';
|
|
function f() {}
|
|
return f;
|
|
};
|
|
function asm2(global, imports) {
|
|
'use asm';
|
|
var asm = imports.asm;
|
|
function f() {}
|
|
return {f: f};
|
|
}
|
|
asm2(this, {asm: asm});
|