2018-05-08 14:58:04 +00:00
|
|
|
// Copyright 2018 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.
|
|
|
|
|
2021-06-01 12:46:36 +00:00
|
|
|
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
|
2018-05-08 14:58:04 +00:00
|
|
|
|
|
|
|
Debug = debug.Debug
|
|
|
|
|
|
|
|
function listener(event, exec_state, event_data, data) {
|
|
|
|
if (event == Debug.DebugEvent.AfterCompile) {
|
|
|
|
// The actual source doesn't matter, just don't crash.
|
2019-11-06 15:51:44 +00:00
|
|
|
var source = event_data.script().source();
|
|
|
|
// Source will be empty for the script representing the entire module,
|
|
|
|
// disassembly for the script representing just the function.
|
|
|
|
assertTrue(source == "func $main\nend\n" || source == "");
|
2018-05-08 14:58:04 +00:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
// Add the debug event listener.
|
|
|
|
Debug.setListener(listener);
|
|
|
|
|
|
|
|
var builder = new WasmModuleBuilder();
|
|
|
|
builder.addFunction('main', kSig_v_v).addBody([]).exportFunc();
|
|
|
|
var promise = WebAssembly.compile(builder.toBuffer());
|
|
|
|
|
|
|
|
// Clear the debug listener only after the event fired.
|
|
|
|
promise.then(() => Debug.setListener(null), assertUnreachable);
|