Skip to content

Commit 2452663

Browse files
committed
[js] Handle more things returned from .Num when numifying.
1 parent 816493c commit 2452663

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/vm/js/nqp-runtime/runtime.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,18 @@ exports.toNum = function(arg, ctx) {
161161
} else if (typeof arg == 'string') {
162162
var ret = parseFloat(arg);
163163
return isNaN(ret) ? 0 : ret;
164-
} else if (arg._STable && arg._STable.methodCache.Num) {
165-
return arg.Num(ctx, null, arg);
164+
} else if (arg._STable && arg._STable.methodCache && arg._STable.methodCache.Num) {
165+
var result = arg.Num(ctx, null, arg);
166+
if (result.$$getNum) {
167+
return result.$$getNum();
168+
} else if (result.$$numify) {
169+
return result.$$numify();
170+
} else if (typeof result == 'number') {
171+
return result;
172+
} else {
173+
console.trace("we can't numify result of toNum");
174+
process.exit();
175+
}
166176
} else if (arg.typeObject_) {
167177
return 0;
168178
} else if (arg.$$getNum) {

0 commit comments

Comments
 (0)