fix JS_ToNumber
This commit is contained in:
@@ -3955,8 +3955,10 @@ JSValue JS_ToNumber (JSContext *ctx, JSValue val) {
|
||||
ret = val;
|
||||
break;
|
||||
case JS_TAG_BOOL:
|
||||
ret = JS_NewInt32 (ctx, JS_ToBool (ctx, val));
|
||||
break;
|
||||
case JS_TAG_NULL:
|
||||
ret = JS_NewInt32 (ctx, JS_VALUE_GET_INT (val));
|
||||
ret = JS_NewInt32 (ctx, 0);
|
||||
break;
|
||||
case JS_TAG_STRING_IMM:
|
||||
return JS_ThrowTypeError (ctx, "cannot convert text to a number");
|
||||
@@ -4015,10 +4017,14 @@ redo:
|
||||
tag = JS_VALUE_GET_NORM_TAG (val);
|
||||
switch (tag) {
|
||||
case JS_TAG_INT:
|
||||
case JS_TAG_BOOL:
|
||||
case JS_TAG_NULL:
|
||||
ret = JS_VALUE_GET_INT (val);
|
||||
break;
|
||||
case JS_TAG_BOOL:
|
||||
ret = JS_VALUE_GET_BOOL (val);
|
||||
break;
|
||||
case JS_TAG_NULL:
|
||||
ret = 0;
|
||||
break;
|
||||
case JS_TAG_EXCEPTION:
|
||||
*pres = 0;
|
||||
return -1;
|
||||
@@ -4064,10 +4070,14 @@ redo:
|
||||
tag = JS_VALUE_GET_NORM_TAG (val);
|
||||
switch (tag) {
|
||||
case JS_TAG_INT:
|
||||
case JS_TAG_BOOL:
|
||||
case JS_TAG_NULL:
|
||||
*pres = JS_VALUE_GET_INT (val);
|
||||
return 0;
|
||||
case JS_TAG_BOOL:
|
||||
*pres = JS_VALUE_GET_BOOL (val);
|
||||
return 0;
|
||||
case JS_TAG_NULL:
|
||||
*pres = 0;
|
||||
return 0;
|
||||
case JS_TAG_EXCEPTION:
|
||||
*pres = 0;
|
||||
return -1;
|
||||
@@ -4115,10 +4125,14 @@ redo:
|
||||
tag = JS_VALUE_GET_NORM_TAG (val);
|
||||
switch (tag) {
|
||||
case JS_TAG_INT:
|
||||
case JS_TAG_BOOL:
|
||||
case JS_TAG_NULL:
|
||||
ret = JS_VALUE_GET_INT (val);
|
||||
break;
|
||||
case JS_TAG_BOOL:
|
||||
ret = JS_VALUE_GET_BOOL (val);
|
||||
break;
|
||||
case JS_TAG_NULL:
|
||||
ret = 0;
|
||||
break;
|
||||
case JS_TAG_FLOAT64: {
|
||||
JSFloat64Union u;
|
||||
double d;
|
||||
@@ -4162,10 +4176,14 @@ redo:
|
||||
tag = JS_VALUE_GET_NORM_TAG (val);
|
||||
switch (tag) {
|
||||
case JS_TAG_INT:
|
||||
case JS_TAG_BOOL:
|
||||
case JS_TAG_NULL:
|
||||
ret = JS_VALUE_GET_INT (val);
|
||||
break;
|
||||
case JS_TAG_BOOL:
|
||||
ret = JS_VALUE_GET_BOOL (val);
|
||||
break;
|
||||
case JS_TAG_NULL:
|
||||
ret = 0;
|
||||
break;
|
||||
case JS_TAG_FLOAT64: {
|
||||
JSFloat64Union u;
|
||||
double d;
|
||||
|
||||
Reference in New Issue
Block a user