Index: src/wasm/wasm-module.cc |
diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc |
index cd5fa420628e1d75b3f2985865fb9825b10cd09a..40015a70e161c889906896a242e94d7b4fa399b9 100644 |
--- a/src/wasm/wasm-module.cc |
+++ b/src/wasm/wasm-module.cc |
@@ -1455,22 +1455,26 @@ class InstantiationHelper { |
std::vector<Handle<JSFunction>> js_wrappers_; |
JSToWasmWrapperCache js_to_wasm_cache_; |
- // Helper routines to print out errors with imports. |
- void ReportLinkError(const char* error, uint32_t index, |
- Handle<String> module_name, Handle<String> import_name) { |
- thrower_->LinkError( |
- "Import #%d module=\"%.*s\" function=\"%.*s\" error: %s", index, |
- module_name->length(), module_name->ToCString().get(), |
- import_name->length(), import_name->ToCString().get(), error); |
- } |
- |
- MaybeHandle<Object> ReportLinkError(const char* error, uint32_t index, |
- Handle<String> module_name) { |
- thrower_->LinkError("Import #%d module=\"%.*s\" error: %s", index, |
- module_name->length(), module_name->ToCString().get(), |
- error); |
- return MaybeHandle<Object>(); |
- } |
+// Helper routines to print out errors with imports. |
+#define ERROR_THROWER_WITH_MESSAGE(TYPE) \ |
+ void Report##TYPE(const char* error, uint32_t index, \ |
+ Handle<String> module_name, Handle<String> import_name) { \ |
+ thrower_->TYPE("Import #%d module=\"%.*s\" function=\"%.*s\" error: %s", \ |
+ index, module_name->length(), \ |
+ module_name->ToCString().get(), import_name->length(), \ |
+ import_name->ToCString().get(), error); \ |
+ } \ |
+ \ |
+ MaybeHandle<Object> Report##TYPE(const char* error, uint32_t index, \ |
+ Handle<String> module_name) { \ |
+ thrower_->TYPE("Import #%d module=\"%.*s\" error: %s", index, \ |
+ module_name->length(), module_name->ToCString().get(), \ |
+ error); \ |
+ return MaybeHandle<Object>(); \ |
+ } |
+ |
+ ERROR_THROWER_WITH_MESSAGE(LinkError) |
+ ERROR_THROWER_WITH_MESSAGE(TypeError) |
// Look up an import value in the {ffi_} object. |
MaybeHandle<Object> LookupImport(uint32_t index, Handle<String> module_name, |
@@ -1483,14 +1487,14 @@ class InstantiationHelper { |
MaybeHandle<Object> result = |
Object::GetPropertyOrElement(ffi_, module_name); |
if (result.is_null()) { |
- return ReportLinkError("module not found", index, module_name); |
+ return ReportTypeError("module not found", index, module_name); |
} |
Handle<Object> module = result.ToHandleChecked(); |
// Look up the value in the module. |
if (!module->IsJSReceiver()) { |
- return ReportLinkError("module is not an object or function", index, |
+ return ReportTypeError("module is not an object or function", index, |
module_name); |
} |