diff options
-rw-r--r-- | src/bindings/quickjs.nim | 2 | ||||
-rw-r--r-- | src/js/javascript.nim | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/bindings/quickjs.nim b/src/bindings/quickjs.nim index 34f24cec..cfef9693 100644 --- a/src/bindings/quickjs.nim +++ b/src/bindings/quickjs.nim @@ -352,7 +352,7 @@ proc JS_SetPropertyFunctionList*(ctx: JSContext, obj: JSValue, tab: ptr JSCFunct proc JS_GetProperty*(ctx: JSContext, this_obj: JSValue, prop: JSAtom): JSValue proc JS_GetPropertyStr*(ctx: JSContext, this_obj: JSValue, prop: cstring): JSValue proc JS_GetPropertyUint32*(ctx: JSContext, this_obj: JSValue, idx: uint32): JSValue -proc JS_GetOwnPropertyNames*(ctx: JSContext, ptab: ptr ptr JSPropertyEnum, plen: ptr uint32, obj: JSValue, flags: cint): int +proc JS_GetOwnPropertyNames*(ctx: JSContext, ptab: ptr ptr JSPropertyEnum, plen: ptr uint32, obj: JSValue, flags: cint): cint proc JS_GetOwnProperty*(ctx: JSContext, desc: ptr JSPropertyDescriptor, obj: JSValue, prop: JSAtom): cint proc JS_Call*(ctx: JSContext, func_obj, this_obj: JSValue, argc: cint, argv: ptr JSValue): JSValue diff --git a/src/js/javascript.nim b/src/js/javascript.nim index c0c55237..876f7127 100644 --- a/src/js/javascript.nim +++ b/src/js/javascript.nim @@ -515,7 +515,7 @@ proc fromJSTable[A, B](ctx: JSContext, val: JSValue): Option[Table[A, B]] = var ptab: ptr JSPropertyEnum var plen: uint32 let flags = cint(JS_GPN_STRING_MASK) - if JS_GetOwnPropertyNames(ctx, addr ptab, addr plen, val, flags) < -1: + if JS_GetOwnPropertyNames(ctx, addr ptab, addr plen, val, flags) == -1: # exception return none(Table[A, B]) defer: @@ -744,6 +744,8 @@ proc toJS*[T](ctx: JSContext, obj: T): JSValue = return a elif T is enum: return toJS(ctx, int(obj)) + elif T is JSValue: + return obj else: if obj == nil: return JS_NULL |