summary refs log tree commit diff stats
path: root/tests/js/test2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/js/test2.nim')
-rw-r--r--tests/js/test2.nim58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/js/test2.nim b/tests/js/test2.nim
new file mode 100644
index 000000000..fa857ccc5
--- /dev/null
+++ b/tests/js/test2.nim
@@ -0,0 +1,58 @@
+discard """
+  output: '''foo
+js 3.14
+7
+1
+-21550
+-21550'''
+"""
+
+# This file tests the JavaScript generator
+
+doAssert getCurrentException() == nil
+doAssert getCurrentExceptionMsg() == ""
+
+#  #335
+proc foo() =
+  var bar = "foo"
+  proc baz() =
+    echo bar
+  baz()
+foo()
+
+# #376
+when not defined(js):
+  proc foo(val: float): string = "no js " & $val
+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)
+
+# #4222
+const someConst = [ "1"]
+
+proc procThatRefersToConst() # Forward decl
+procThatRefersToConst() # Call bar before it is defined
+
+proc procThatRefersToConst() =
+  var i = 0 # Use a var index, otherwise nim will constfold foo[0]
+  echo someConst[i] # JS exception here: foo is still not initialized (undefined)
+
+# bug #6753
+let x = -1861876800
+const y = 86400
+echo (x - (y - 1)) div y # Now gives `-21550`
+
+proc foo09() =
+    let x = -1861876800
+    const y = 86400
+    echo (x - (y - 1)) div y # Still gives `-21551`
+foo09()