This commit is contained in:
ekibun
2021-01-02 00:57:52 +08:00
parent d44af3d093
commit 045277dbe3
13 changed files with 278 additions and 185 deletions

View File

@@ -16,7 +16,7 @@ abstract class JSRef {
}
/// JS_Eval() flags
class JSEvalType {
class JSEvalFlag {
static const GLOBAL = 0 << 0;
static const MODULE = 1 << 0;
}
@@ -110,9 +110,9 @@ typedef JSChannel = Pointer Function(Pointer ctx, Pointer method, Pointer argv);
class RuntimeOpaque {
JSChannel channel;
List<JSRef> ref = List();
List<JSRef> ref = [];
ReceivePort port;
Future Function(Pointer) promsieToFuture;
Future Function(Pointer) promiseToFuture;
}
final Map<Pointer, RuntimeOpaque> runtimeOpaques = Map();
@@ -356,32 +356,52 @@ final Pointer Function(
)>>("jsNewObject")
.asFunction();
/// void jsFreeValue(JSContext *ctx, JSValue *val)
/// void jsFreeValue(JSContext *ctx, JSValue *val, int32_t free)
final void Function(
Pointer ctx,
Pointer val,
) jsFreeValue = qjsLib
int free,
) _jsFreeValue = qjsLib
.lookup<
NativeFunction<
Void Function(
Pointer,
Pointer,
Int32,
)>>("jsFreeValue")
.asFunction();
/// void jsFreeValueRT(JSRuntime *rt, JSValue *v)
void jsFreeValue(
Pointer ctx,
Pointer val, {
bool free = true,
}) {
_jsFreeValue(ctx, val, free ? 1 : 0);
}
/// void jsFreeValue(JSRuntime *rt, JSValue *val, int32_t free)
final void Function(
Pointer rt,
Pointer val,
) jsFreeValueRT = qjsLib
int free,
) _jsFreeValueRT = qjsLib
.lookup<
NativeFunction<
Void Function(
Pointer,
Pointer,
Int32,
)>>("jsFreeValueRT")
.asFunction();
void jsFreeValueRT(
Pointer rt,
Pointer val, {
bool free = true,
}) {
_jsFreeValueRT(rt, val, free ? 1 : 0);
}
/// JSValue *jsDupValue(JSContext *ctx, JSValueConst *v)
final Pointer Function(
Pointer ctx,
@@ -512,6 +532,19 @@ final int Function(
)>>("jsIsFunction")
.asFunction();
/// int32_t jsIsPromise(JSContext *ctx, JSValueConst *val)
final int Function(
Pointer ctx,
Pointer val,
) jsIsPromise = qjsLib
.lookup<
NativeFunction<
Int32 Function(
Pointer,
Pointer,
)>>("jsIsPromise")
.asFunction();
/// int32_t jsIsArray(JSContext *ctx, JSValueConst *val)
final int Function(
Pointer ctx,