1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00
This commit is contained in:
Ben Kuper 2026-01-07 19:49:10 +01:00 committed by GitHub
commit dec2c5a776
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 5 deletions

View file

@ -8912,7 +8912,13 @@ static inline JS_BOOL JS_IsNumber(JSValueConst v)
return tag == JS_TAG_INT || JS_TAG_IS_FLOAT64(tag); return tag == JS_TAG_INT || JS_TAG_IS_FLOAT64(tag);
} }
static inline JS_BOOL JS_IsBigInt(JSContext *ctx, JSValueConst v) static inline JS_BOOL JS_IsInteger(JSValueConst v)
{
int tag = JS_VALUE_GET_TAG(v);
return tag == JS_TAG_INT;
}
static inline JS_BOOL JS_IsBigInt(JSValueConst v)
{ {
int tag = JS_VALUE_GET_TAG(v); int tag = JS_VALUE_GET_TAG(v);
return tag == JS_TAG_BIG_INT; return tag == JS_TAG_BIG_INT;
@ -20781,7 +20787,7 @@ inline int JS_ToInt64(JSContext *ctx, int64_t *pres, JSValueConst val)
inline int JS_ToInt64Ext(JSContext *ctx, int64_t *pres, JSValueConst val) inline int JS_ToInt64Ext(JSContext *ctx, int64_t *pres, JSValueConst val)
{ {
if (JS_IsBigInt(ctx, val)) if (JS_IsBigInt(val))
return JS_ToBigInt64(ctx, pres, val); return JS_ToBigInt64(ctx, pres, val);
else else
return JS_ToInt64(ctx, pres, val); return JS_ToInt64(ctx, pres, val);

View file

@ -249,9 +249,22 @@ static var tryQuickJSToJuce (const qjs::QuickJSContext::ValuePtr& ptr,
if (JS_IsNumber (ptr.value)) if (JS_IsNumber (ptr.value))
{ {
double d = 0; if(JS_IsBigInt(ptr.value))
JS_ToFloat64 (ptr.context, std::addressof (d), ptr.value); {
return d; int64_t i = 0;
JS_ToBigInt64 (ptr.context, std::addressof (i), ptr.value);
return var((juce::int64)i);
}if(JS_IsInteger(ptr.value))
{
int32_t i = 0;
JS_ToInt32 (ptr.context, std::addressof (i), ptr.value);
return i;
}
{
double d = 0;
JS_ToFloat64 (ptr.context, std::addressof (d), ptr.value);
return d;
}
} }
if (JS_IsBool (ptr.value)) if (JS_IsBool (ptr.value))