1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 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()
|