| Index: src/wasm/module-decoder.cc
|
| diff --git a/src/wasm/module-decoder.cc b/src/wasm/module-decoder.cc
|
| index 3e85a1b53cefd2e8ebbecf75cfa9a18e94b3f14e..cad915565625f1fe2f37aa552415d48620a7ec4a 100644
|
| --- a/src/wasm/module-decoder.cc
|
| +++ b/src/wasm/module-decoder.cc
|
| @@ -767,15 +767,21 @@ class FunctionError : public FunctionResult {
|
| ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone,
|
| const byte* module_start, const byte* module_end,
|
| bool verify_functions, ModuleOrigin origin) {
|
| + size_t decode_memory_start = zone->allocation_size();
|
| + HistogramTimerScope wasm_decode_module_time_scope(
|
| + isolate->counters()->wasm_decode_module_time());
|
| 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");
|
| + isolate->counters()->wasm_module_bytes()->AddSample(static_cast<int>(size));
|
| WasmModule* module = new WasmModule();
|
| ModuleDecoder decoder(zone, module_start, module_end, origin);
|
| - return decoder.DecodeModule(module, verify_functions);
|
| + ModuleResult result = decoder.DecodeModule(module, verify_functions);
|
| + isolate->counters()->wasm_decode_peak_memory()->AddSample(
|
| + static_cast<int>(zone->allocation_size() - decode_memory_start));
|
| + return result;
|
| }
|
|
|
| -
|
| FunctionSig* DecodeWasmSignatureForTesting(Zone* zone, const byte* start,
|
| const byte* end) {
|
| ModuleDecoder decoder(zone, start, end, kWasmOrigin);
|
| @@ -787,10 +793,13 @@ FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone,
|
| ModuleEnv* module_env,
|
| const byte* function_start,
|
| const byte* function_end) {
|
| + HistogramTimerScope wasm_decode_function_time_scope(
|
| + isolate->counters()->wasm_decode_function_time());
|
| size_t size = function_end - function_start;
|
| if (function_start > function_end) return FunctionError("start > end");
|
| if (size > kMaxFunctionSize)
|
| return FunctionError("size > maximum function size");
|
| + isolate->counters()->wasm_function_bytes()->AddSample(static_cast<int>(size));
|
| WasmFunction* function = new WasmFunction();
|
| ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin);
|
| return decoder.DecodeSingleFunction(module_env, function);
|
|
|