From 2de858ae8ed2d33011d7c0ad224438033cacc2e4 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 6 Nov 2015 14:02:46 -0800 Subject: resolve local names at parse time --- src/wasm-interpreter.h | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) (limited to 'src/wasm-interpreter.h') diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 0e67a1845..8d7e1c5ae 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -279,30 +279,15 @@ private: return instance.callFunction(name, arguments); } - Name getLocalName(Name name) { - if (scope.locals.find(name) != scope.locals.end()) { - return name; - } - // this is a numeric index - size_t id = std::stoi(name.str); - size_t numParams = scope.function->params.size(); - if (id < numParams) { - return scope.function->params[id].name; - } - id -= numParams; - assert(id < scope.function->locals.size()); - return scope.function->locals[id].name; - } - Flow visitGetLocal(GetLocal *curr) override { NOTE_ENTER("GetLocal"); - IString name = getLocalName(curr->name); + IString name = curr->name; NOTE_EVAL1(scope.locals[name]); return scope.locals[name]; } Flow visitSetLocal(SetLocal *curr) override { NOTE_ENTER("SetLocal"); - IString name = getLocalName(curr->name); + IString name = curr->name; Flow flow = visit(curr->value); if (flow.breaking()) return flow; NOTE_EVAL1(flow.value); -- cgit v1.2.3