mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
Better type support in QuickJSToJuce
This commit is contained in:
parent
389516feeb
commit
f9d45f22db
2 changed files with 24 additions and 5 deletions
|
|
@ -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;
|
||||
|
|
@ -20782,7 +20788,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);
|
||||
|
|
|
|||
|
|
@ -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 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))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue