aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-07-02 14:20:11 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-07-03 15:31:05 -0700
commitaebf1a7ba53cc744fe69f209126aea37b4eca1c7 (patch)
tree77c6c71d41d92fb88ec3980b32c2632c2857a312 /src/parseTools.js
parent1f4e0951b950db2b4474ae40fb9c42c24fdeec68 (diff)
refactor getIndex calls to include the signature
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index 2b143697..68f61fa0 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -1229,15 +1229,11 @@ function indexizeFunctions(value, type) {
var out = {};
if (type && isFunctionType(type, out) && value[0] === '_') { // checking for _ differentiates from $ (local vars)
// add signature to library functions that we now know need indexing
- if (!(value in Functions.implementedFunctions) && !(value in Functions.unimplementedFunctions)) {
- Functions.unimplementedFunctions[value] = Functions.getSignature(out.returnType, out.segments ? out.segments.map(function(segment) { return segment[0].text }) : []);
- }
-
- if (BUILD_AS_SHARED_LIB) {
- return '(FUNCTION_TABLE_OFFSET + ' + Functions.getIndex(value) + ')';
- } else {
- return Functions.getIndex(value);
+ var sig = Functions.implementedFunctions[value] || Functions.unimplementedFunctions[value];
+ if (!sig) {
+ sig = Functions.unimplementedFunctions[value] = Functions.getSignature(out.returnType, out.segments ? out.segments.map(function(segment) { return segment[0].text }) : []);
}
+ return Functions.getIndex(value, undefined, sig);
}
return value;
}