diff options
author | bptato <nincsnevem662@gmail.com> | 2023-06-29 14:59:09 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2023-06-29 14:59:09 +0200 |
commit | 0eef1cb27a9cf8cca861ad2743a895c9382f292f (patch) | |
tree | 6ba5ab7ef23a6bdaa5210c5c08b707fae86672d4 /src/js | |
parent | 19068fd7d803a157de671e189e01731bc903ba9e (diff) | |
download | chawan-0eef1cb27a9cf8cca861ad2743a895c9382f292f.tar.gz |
Remove .jsgctor
Not sure how it ever worked. This fixes Text() constructors etc.
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/javascript.nim | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/src/js/javascript.nim b/src/js/javascript.nim index 013bbed3..d2b3c2e0 100644 --- a/src/js/javascript.nim +++ b/src/js/javascript.nim @@ -236,7 +236,7 @@ func getOpaque0*(val: JSValue): pointer = if JS_VALUE_GET_TAG(val) == JS_TAG_OBJECT: return JS_GetOpaque(val, JS_GetClassID(val)) -func getGlobalOpaque[T](ctx: JSContext, val: JSValue): Opt[T] = +func getGlobalOpaque*(ctx: JSContext, T: typedesc, val: JSValue = JS_UNDEFINED): Opt[T] = let global = JS_GetGlobalObject(ctx) if JS_IsUndefined(val) or val == global: let opaque = JS_GetOpaque(global, JS_CLASS_OBJECT) @@ -742,7 +742,7 @@ proc fromJSObject[T: ref object](ctx: JSContext, val: JSValue): Opt[T] = if JS_IsNull(val): return ok(T(nil)) if ctx.isGlobal($T): - return getGlobalOpaque[T](ctx, val) + return getGlobalOpaque(ctx, T, val) if not JS_IsObject(val): JS_ThrowTypeError(ctx, "Value is not an object") return err() @@ -1490,25 +1490,6 @@ macro jsctor*(fun: typed) = gen.registerConstructor() result = newStmtList(fun) -macro jsgctor*(fun: typed) = - var gen = setupGenerator(fun, CONSTRUCTOR, thisname = none(string)) - if gen.newName.strVal in existing_funcs: - #TODO TODO TODO implement function overloading - error("Function overloading hasn't been implemented yet...") - gen.addFixParam("this") - gen.addRequiredParams() - gen.addOptionalParams() - gen.finishFunCallList() - let jfcl = gen.jsFunCallList - let dl = gen.dielabel - gen.jsCallAndRet = quote do: - block `dl`: - return ctx.toJS(`jfcl`) - return JS_ThrowTypeError(ctx, "Invalid parameters passed to constructor") - discard gen.newJSProc(getJSParams()) - gen.registerConstructor() - result = newStmtList(fun) - macro jshasprop*(fun: typed) = var gen = setupGenerator(fun, PROPERTY_HAS, thisname = some("obj")) if gen.newName.strVal in existing_funcs: |