summary refs log tree commit diff stats
path: root/tests/js/test2.nim
blob: 0f460d6f89d926b0d13aeaea7d3debee5acec508 (plain) (blame)
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
discard """
  output: '''foo
js 3.14
7
1'''
"""

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