File: typed_continuations.wast

package info (click to toggle)
binaryen 120-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,284 kB
  • sloc: cpp: 189,449; javascript: 62,189; ansic: 14,087; python: 5,379; pascal: 441; sh: 77; makefile: 30; asm: 27
file content (49 lines) | stat: -rw-r--r-- 887 bytes parent folder | download
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
(module
 (type $ft (func (param i32) (result i32)))
 (type $ct (cont $ft))

 (func $id (param $x (ref $ct)) (result (ref $ct))
  (local.get $x)
 )

 (func $cont-nocont (param $x (ref null $ct))
  (local $l1 (ref null cont))
  (local $l2 (ref null $ct))
  (local.set $l1 (local.get $x))    ;; $ct <: cont
  (local.set $l2 (ref.null nocont)) ;; nocont <: $ct
  (local.set $l1 (ref.null nocont)) ;; nocont <: cont
 )
)

(assert_invalid
 (module
  (type $ft (func (param i32) (result i32)))
  (type $ct1 (cont $ft))
  (type $ct2 (cont $ct1))
 )
 "invalid"
)

(assert_invalid
 (module
  (type $ft (func (param i32) (result i32)))
  (type $ct (cont $ft))

  (func $id (param $x $ct) (result i32)
   (i32.const 123)
  )
 )
 "invalid"
)

(assert_invalid
 (module
  (type $ft (func (param i32) (result i32)))
  (type $ct (cont $ft))

  (func $id (type $ct)
   (i32.const 123)
  )
 )
 "invalid"
)