diff options
author | Alon Zakai <azakai@mozilla.com> | 2010-12-12 15:05:22 -0800 |
---|---|---|
committer | Alon Zakai <azakai@mozilla.com> | 2010-12-12 15:05:22 -0800 |
commit | 6d83c785fb2f9befb0af92f57b5c5f8e5242ba49 (patch) | |
tree | da83e3cb3126df53ddb0aed7f45430330a0f5b07 /src/jsifier.js | |
parent | 240ff2ff8e8d797740a6ee1dd534240afed6d6e5 (diff) |
support for library dependencies +misc python float fixes
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index ed42dae7..90b155e7 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -270,13 +270,21 @@ function JSify(data, functionsOnly, givenTypes, givenFunctions) { processItem: function(item) { var shortident = item.ident.substr(1); if (shortident in Library) { - var snippet = Library[shortident]; - if (typeof snippet === 'string') { - if (Library[snippet]) { - snippet = Library[snippet]; // redirection for aliases + function addFromLibrary(ident) { + var me = arguments.callee; + if (!me.added) me.added = {}; + if (ident in me.added) return ''; + me.added[ident] = true; + var snippet = Library[ident]; + if (typeof snippet === 'string') { + if (Library[snippet]) { + snippet = Library[snippet]; // redirection for aliases + } } + var deps = Library[ident + '__deps']; + return '_' + ident + ' = ' + snippet.toString() + (deps ? '\n' + deps.map(addFromLibrary).join('\n') : ''); } - item.JS = item.ident + ' = ' + snippet.toString(); + item.JS = addFromLibrary(shortident); } else { item.JS = '// stub for ' + item.ident; } |