summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-06 14:02:46 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-06 14:02:46 -0800
commit2de858ae8ed2d33011d7c0ad224438033cacc2e4 (patch)
tree3273f30d38812519fede4cb393d27e70cb5807fc /src/wasm-interpreter.h
parent1c62fc77b7ac612f4a09a9b64aa1f6823809665a (diff)
downloadbinaryen-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.h19
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);