Index: src/wasm/module-decoder.cc |
diff --git a/src/wasm/module-decoder.cc b/src/wasm/module-decoder.cc |
index 9ba0b3b663f5bdd5c8e6f53861272faeb83d05ab..a1ccdd73a129e98c82f26aef8b968f06a25c28ae 100644 |
--- a/src/wasm/module-decoder.cc |
+++ b/src/wasm/module-decoder.cc |
@@ -27,8 +27,8 @@ namespace wasm { |
class ModuleDecoder : public Decoder { |
public: |
ModuleDecoder(Zone* zone, const byte* module_start, const byte* module_end, |
- bool asm_js) |
- : Decoder(module_start, module_end), module_zone(zone), asm_js_(asm_js) { |
+ ModuleOrigin origin) |
+ : Decoder(module_start, module_end), module_zone(zone), origin_(origin) { |
result_.start = start_; |
if (limit_ < start_) { |
error(start_, "end is less than start"); |
@@ -49,6 +49,7 @@ class ModuleDecoder : public Decoder { |
module->max_mem_size_log2 = 0; |
module->mem_export = false; |
module->mem_external = false; |
+ module->origin = origin_; |
module->globals = new std::vector<WasmGlobal>(); |
module->signatures = new std::vector<FunctionSig*>(); |
module->functions = new std::vector<WasmFunction>(); |
@@ -105,7 +106,7 @@ class ModuleDecoder : public Decoder { |
ModuleEnv menv; |
menv.module = module; |
menv.instance = nullptr; |
- menv.asm_js = asm_js_; |
+ menv.origin = origin_; |
// Decode functions. |
for (uint32_t i = 0; i < functions_count; i++) { |
if (failed()) break; |
@@ -360,7 +361,7 @@ class ModuleDecoder : public Decoder { |
private: |
Zone* module_zone; |
ModuleResult result_; |
- bool asm_js_; |
+ ModuleOrigin origin_; |
uint32_t off(const byte* ptr) { return static_cast<uint32_t>(ptr - start_); } |
@@ -608,22 +609,21 @@ class FunctionError : public FunctionResult { |
} |
}; |
- |
ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone, |
const byte* module_start, const byte* module_end, |
- bool verify_functions, bool asm_js) { |
+ bool verify_functions, ModuleOrigin origin) { |
size_t size = module_end - module_start; |
if (module_start > module_end) return ModuleError("start > end"); |
if (size >= kMaxModuleSize) return ModuleError("size > maximum module size"); |
WasmModule* module = new WasmModule(); |
- ModuleDecoder decoder(zone, module_start, module_end, asm_js); |
+ ModuleDecoder decoder(zone, module_start, module_end, origin); |
return decoder.DecodeModule(module, verify_functions); |
} |
FunctionSig* DecodeWasmSignatureForTesting(Zone* zone, const byte* start, |
const byte* end) { |
- ModuleDecoder decoder(zone, start, end, false); |
+ ModuleDecoder decoder(zone, start, end, kWasmOrigin); |
return decoder.DecodeFunctionSignature(start); |
} |
@@ -637,7 +637,7 @@ FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone, |
if (size > kMaxFunctionSize) |
return FunctionError("size > maximum function size"); |
WasmFunction* function = new WasmFunction(); |
- ModuleDecoder decoder(zone, function_start, function_end, false); |
+ ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin); |
return decoder.DecodeSingleFunction(module_env, function); |
} |
} // namespace wasm |