aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-11-06 22:57:26 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-11-06 22:57:26 -0800
commit61e7c8e0048f6314760c8dd70255f0e8b754f79a (patch)
treecf72a6d262caa051b1c49a95bcbd87eb820ac226 /src
parent7b7b18b8722d22854355018e688abba9f64dba0d (diff)
fix bug with re-processing type and other info for each function, leading to massive slowdowns on very large projects
Diffstat (limited to 'src')
-rw-r--r--src/jsifier.js14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 23d9274a..021572f3 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -982,11 +982,15 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) {
// Data
- substrate.addItems(values(Types.types).filter(function(type) { return type.lineNum != '?' }), 'Type');
- substrate.addItems(values(data.globalVariables), 'GlobalVariable');
- substrate.addItems(data.functions, 'FunctionSplitter');
- substrate.addItems(data.functionStubs, 'FunctionStub');
- substrate.addItems(data.aliass, 'Alias');
+ if (mainPass) {
+ substrate.addItems(values(Types.types).filter(function(type) { return type.lineNum != '?' }), 'Type');
+ substrate.addItems(values(data.globalVariables), 'GlobalVariable');
+ substrate.addItems(data.functionStubs, 'FunctionStub');
+ substrate.addItems(data.aliass, 'Alias');
+ assert(data.functions.length == 0);
+ } else {
+ substrate.addItems(data.functions, 'FunctionSplitter');
+ }
return finalCombiner(substrate.solve());
}