diff options
Diffstat (limited to 'src/library.js')
-rw-r--r-- | src/library.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/library.js b/src/library.js index 51fb6ce5..3e346280 100644 --- a/src/library.js +++ b/src/library.js @@ -2156,8 +2156,12 @@ LibraryManager.library = { argText = argText.toUpperCase(); } } else if (next == 'p'.charCodeAt(0)) { - prefix = '0x'; - argText = currAbsArg.toString(16); + if (currAbsArg === 0) { + argText = '(nil)'; + } else { + prefix = '0x'; + argText = currAbsArg.toString(16); + } } if (precisionSet) { while (argText.length < precision) { @@ -2277,9 +2281,15 @@ LibraryManager.library = { }); } else if (next == 's'.charCodeAt(0)) { // String. - var copiedString = String_copy(getNextArg()); - if (precisionSet && copiedString.length > precision) { - copiedString = copiedString.slice(0, precision); + var arg = getNextArg(); + var copiedString; + if (arg) { + copiedString = String_copy(arg); + if (precisionSet && copiedString.length > precision) { + copiedString = copiedString.slice(0, precision); + } + } else { + copiedString = intArrayFromString('(null)', true); } if (!flagLeftAlign) { while (copiedString.length < width--) { |