diff options
Diffstat (limited to 'tests/js')
-rw-r--r-- | tests/js/taddr.nim | 36 | ||||
-rw-r--r-- | tests/js/tbyvar.nim | 7 | ||||
-rw-r--r-- | tests/js/test1.nim | 4 | ||||
-rw-r--r-- | tests/js/test2.nim | 11 | ||||
-rw-r--r-- | tests/js/tfloatround.nim | 7 | ||||
-rw-r--r-- | tests/js/tstringitems.nim | 24 | ||||
-rw-r--r-- | tests/js/tunittests.nim | 7 |
7 files changed, 90 insertions, 6 deletions
diff --git a/tests/js/taddr.nim b/tests/js/taddr.nim new file mode 100644 index 000000000..6a60aa902 --- /dev/null +++ b/tests/js/taddr.nim @@ -0,0 +1,36 @@ +type T = object + x: int + s: string + +var obj: T +var fieldAddr = addr(obj.x) +var objAddr = addr(obj) + +# Integer tests +var field = fieldAddr[] +doAssert field == 0 + +var objDeref = objAddr[] +doAssert objDeref.x == 0 + +# Change value +obj.x = 42 + +doAssert field == 0 +doAssert objDeref.x == 0 + +field = fieldAddr[] +objDeref = objAddr[] + +doAssert field == 42 +doAssert objDeref.x == 42 + +# String tests +obj.s = "lorem ipsum dolor sit amet" +var indexAddr = addr(obj.s[2]) + +doAssert indexAddr[] == '4' + +indexAddr[] = 'd' + +doAssert indexAddr[] == 'd' diff --git a/tests/js/tbyvar.nim b/tests/js/tbyvar.nim index 5ed2de1da..1269e6f66 100644 --- a/tests/js/tbyvar.nim +++ b/tests/js/tbyvar.nim @@ -4,12 +4,13 @@ bar 12 2 foo 12 bar 12 -2''' +2 +''' """ # bug #1489 -proc foo(x: int) = echo "foo: ", x -proc bar(y: var int) = echo "bar: ", y +proc foo(x: int) = echo "foo ", x +proc bar(y: var int) = echo "bar ", y var x = 12 foo(x) diff --git a/tests/js/test1.nim b/tests/js/test1.nim index 09ba30676..7f1d346f0 100644 --- a/tests/js/test1.nim +++ b/tests/js/test1.nim @@ -10,9 +10,9 @@ import var inputElement = "1123" -proc OnButtonClick(inputElement: string) {.exportc.} = +proc onButtonClick(inputElement: string) {.exportc.} = let v = $inputElement - if v.allCharsInSet(whiteSpace): + if v.allCharsInSet(WhiteSpace): echo "only whitespace, hu?" else: var x = parseInt(v) diff --git a/tests/js/test2.nim b/tests/js/test2.nim index 5a734358c..1a42fbfda 100644 --- a/tests/js/test2.nim +++ b/tests/js/test2.nim @@ -1,6 +1,7 @@ discard """ output: '''foo -js 3.14''' +js 3.14 +7''' """ # This file tests the JavaScript generator @@ -20,3 +21,11 @@ else: proc foo(val: float): string = "js " & $val echo foo(3.14) + +# #2495 +type C = concept x + +proc test(x: C, T: typedesc): T = + cast[T](x) + +echo 7.test(int8) diff --git a/tests/js/tfloatround.nim b/tests/js/tfloatround.nim new file mode 100644 index 000000000..7bc5430e6 --- /dev/null +++ b/tests/js/tfloatround.nim @@ -0,0 +1,7 @@ +discard """ + output: ''' +3 +''' +""" + +echo int(22 / 7) diff --git a/tests/js/tstringitems.nim b/tests/js/tstringitems.nim new file mode 100644 index 000000000..f4ea02fec --- /dev/null +++ b/tests/js/tstringitems.nim @@ -0,0 +1,24 @@ +discard """ + output: '''Hello +Hello''' +""" + +# bug #2581 + +const someVars = [ "Hello" ] +var someVars2 = [ "Hello" ] + +proc getSomeVar: string = + for i in someVars: + if i == "Hello": + result = i + break + +proc getSomeVar2: string = + for i in someVars2: + if i == "Hello": + result = i + break + +echo getSomeVar() +echo getSomeVar2() diff --git a/tests/js/tunittests.nim b/tests/js/tunittests.nim index af38cd9b9..8a264a5e0 100644 --- a/tests/js/tunittests.nim +++ b/tests/js/tunittests.nim @@ -1,3 +1,10 @@ +discard """ + disabled: "true" +""" + +# Unittest uses lambdalifting at compile-time which we disable for the JS +# codegen! So this cannot and will not work for quite some time. + import unittest suite "Bacon": |