importjs symbol (#12218)

* importjs symbol
* importjs warning message, minor warning fixes
This commit is contained in:
Arne Döring 2019-09-20 20:26:30 +02:00 • committed by Andreas Rumpf
commit 38ab51c445
7 changed files with 388 additions and 24 deletions

View file

@ -32,7 +32,7 @@ true
'''
"""
import macros, jsffi, jsconsole
import jsffi, jsconsole
# Tests for JsObject
# Test JsObject []= and []
@ -127,7 +127,7 @@ block:
block:
proc test(): bool =
{. emit: "var comparison = {a: 22, b: 'test'};" .}
var comparison {. importc, nodecl .}: JsObject
var comparison {. importjs, nodecl .}: JsObject
let obj = newJsObject()
obj.a = 22
obj.b = "test".cstring
@ -138,7 +138,7 @@ block:
block:
proc test(): bool =
{. emit: "var comparison = {a: 22, b: 'test'};" .}
var comparison {. importc, nodecl .}: JsObject
var comparison {. importjs, nodecl .}: JsObject
let obj = JsObject{ a: 22, b: "test".cstring }
obj.a == comparison.a and obj.b == comparison.b
echo test()
@ -233,7 +233,7 @@ block:
block:
proc test(): bool =
{. emit: "var comparison = {a: 22, b: 55};" .}
var comparison {. importcpp, nodecl .}: JsAssoc[cstring, int]
var comparison {. importjs, nodecl .}: JsAssoc[cstring, int]
let obj = newJsAssoc[cstring, int]()
obj.a = 22
obj.b = 55
@ -244,7 +244,7 @@ block:
block:
proc test(): bool =
{. emit: "var comparison = {a: 22, b: 55};" .}
var comparison {. importcpp, nodecl .}: JsAssoc[cstring, int]
var comparison {. importjs, nodecl .}: JsAssoc[cstring, int]
let obj = JsAssoc[cstring, int]{ a: 22, b: 55 }
var working = true
working = working and
@ -264,7 +264,7 @@ block:
b: cstring
proc test(): bool =
{. emit: "var comparison = {a: 1};" .}
var comparison {. importc, nodecl .}: TestObject
var comparison {. importjs, nodecl .}: TestObject
let obj = TestObject{ a: 1 }
obj == comparison
echo test()
@ -283,7 +283,7 @@ block:
block:
{.emit: "function jsProc(n) { return n; }" .}
proc jsProc(x: int32): JsObject {.importc: "jsProc".}
proc jsProc(x: int32): JsObject {.importjs: "jsProc(#)".}
proc test() =
var x = jsProc(1)
@ -296,8 +296,6 @@ block:
test()
import macros
block:
{.emit:
"""
@ -310,8 +308,8 @@ block:
type Event = object
name: cstring
proc on(event: cstring, handler: proc) {.importc: "on".}
var jslib {.importc: "jslib", nodecl.}: JsObject
proc on(event: cstring, handler: proc) {.importjs: "on(#,#)".}
var jslib {.importjs: "jslib", nodecl.}: JsObject
on("click") do (e: Event):
console.log e