summary refs log blame commit diff stats
path: root/tests/js/test2.nim
blob: 0bfb991397b619d50e32b85b2e90a61e31c579df (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
           
                
       
 


         



                                          
       





                 
 






                                                







                                 









                                                                                 










                                                   
discard """
  output: '''foo
js 3.14
7
1
-21550
-21550'''
"""

# This file tests the JavaScript generator

#  #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()