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);
}
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);
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)
{
if (JS_IsBigInt(ctx, val))
if (JS_IsBigInt(val))
return JS_ToBigInt64(ctx, pres, val);
else
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))
{
double d = 0;
JS_ToFloat64 (ptr.context, std::addressof (d), ptr.value);
return d;
if(JS_IsBigInt(ptr.value))
{
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))