diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-11-06 22:57:26 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-11-06 22:57:26 -0800 |
commit | 61e7c8e0048f6314760c8dd70255f0e8b754f79a (patch) | |
tree | cf72a6d262caa051b1c49a95bcbd87eb820ac226 /src | |
parent | 7b7b18b8722d22854355018e688abba9f64dba0d (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.js | 14 |
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()); } |