aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js
index 4b7b755b..f406f02a 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3457,6 +3457,8 @@ LibraryManager.library = {
strtod__deps: ['isspace', 'isdigit'],
strtod: function(str, endptr) {
+ var origin = str;
+
// Skip space.
while (_isspace({{{ makeGetValue('str', 0, 'i8') }}})) str++;
@@ -3471,15 +3473,22 @@ LibraryManager.library = {
var chr;
var ret = 0;
+ var legit = false;
// Get whole part.
while(1) {
chr = {{{ makeGetValue('str', 0, 'i8') }}};
if (!_isdigit(chr)) break;
+ legit = true;
ret = ret*10 + chr - '0'.charCodeAt(0);
str++;
}
+ if (!legit) {
+ {{{ makeSetValue('endptr', 0, 'origin', '*') }}}
+ return 0;
+ }
+
// Get fractional part.
if ({{{ makeGetValue('str', 0, 'i8') }}} == '.'.charCodeAt(0)) {
str++;