diff options
Diffstat (limited to 'src/library.js')
-rw-r--r-- | src/library.js | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js index 78dd629b..6c96bcca 100644 --- a/src/library.js +++ b/src/library.js @@ -2487,6 +2487,10 @@ LibraryManager.library = { var signed = next == 'd'.charCodeAt(0) || next == 'i'.charCodeAt(0); argSize = argSize || 4; var currArg = getNextArg('i' + (argSize * 8)); +#if PRECISE_I64_MATH == 1 + var origArg = currArg; +#endif + var argText; #if USE_TYPED_ARRAYS == 2 // Flatten i64-1 [low, high] into a (slightly rounded) double if (argSize == 8) { @@ -2500,11 +2504,16 @@ LibraryManager.library = { } // Format the number. var currAbsArg = Math.abs(currArg); - var argText; var prefix = ''; if (next == 'd'.charCodeAt(0) || next == 'i'.charCodeAt(0)) { +#if PRECISE_I64_MATH == 1 + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1]); else +#endif argText = reSign(currArg, 8 * argSize, 1).toString(10); } else if (next == 'u'.charCodeAt(0)) { +#if PRECISE_I64_MATH == 1 + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else +#endif argText = unSign(currArg, 8 * argSize, 1).toString(10); currArg = Math.abs(currArg); } else if (next == 'o'.charCodeAt(0)) { @@ -6078,3 +6087,12 @@ LibraryManager.library = { } }; +function autoAddDeps(object, name) { + name = [name]; + for (var item in object) { + if (item.substr(-6) != '__deps' && !object[item + '__deps']) { + object[item + '__deps'] = name; + } + } +} + |