diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-06 14:02:46 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-06 14:02:46 -0800 |
commit | 2de858ae8ed2d33011d7c0ad224438033cacc2e4 (patch) | |
tree | 3273f30d38812519fede4cb393d27e70cb5807fc /src/wasm-interpreter.h | |
parent | 1c62fc77b7ac612f4a09a9b64aa1f6823809665a (diff) | |
download | binaryen-2de858ae8ed2d33011d7c0ad224438033cacc2e4.tar.gz binaryen-2de858ae8ed2d33011d7c0ad224438033cacc2e4.tar.bz2 binaryen-2de858ae8ed2d33011d7c0ad224438033cacc2e4.zip |
resolve local names at parse time
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r-- | src/wasm-interpreter.h | 19 |
1 files changed, 2 insertions, 17 deletions
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); |