summaryrefslogtreecommitdiff
path: root/test/spec/call_ref.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec/call_ref.wast')
-rw-r--r--test/spec/call_ref.wast21
1 files changed, 11 insertions, 10 deletions
diff --git a/test/spec/call_ref.wast b/test/spec/call_ref.wast
index 8a34706f2..071aa8bbf 100644
--- a/test/spec/call_ref.wast
+++ b/test/spec/call_ref.wast
@@ -2,7 +2,7 @@
(type $ii (func (param i32) (result i32)))
(func $apply (param $f (ref $ii)) (param $x i32) (result i32)
- (call_ref (local.get $x) (local.get $f))
+ (call_ref $ii (local.get $x) (local.get $f))
)
(func $f (type $ii) (i32.mul (local.get 0) (local.get 0)))
@@ -15,11 +15,11 @@
(local $rg (ref null $ii))
(local.set $rf (ref.func $f))
(local.set $rg (ref.func $g))
- (call_ref (call_ref (local.get $x) (local.get $rf)) (local.get $rg))
+ (call_ref $ii (call_ref $ii (local.get $x) (local.get $rf)) (local.get $rg))
)
(func (export "null") (result i32)
- (call_ref (i32.const 1) (ref.null $ii))
+ (call_ref $ii (i32.const 1) (ref.null $ii))
)
;; Recursion
@@ -36,7 +36,7 @@
(else
(i64.mul
(local.get 0)
- (call_ref (i64.sub (local.get 0) (i64.const 1)) (global.get $fac))
+ (call_ref $ll (i64.sub (local.get 0) (i64.const 1)) (global.get $fac))
)
)
)
@@ -49,7 +49,7 @@
(if (result i64) (i64.eqz (local.get 0))
(then (local.get 1))
(else
- (call_ref
+ (call_ref $lll
(i64.sub (local.get 0) (i64.const 1))
(i64.mul (local.get 0) (local.get 1))
(global.get $fac-acc)
@@ -66,8 +66,8 @@
(then (i64.const 1))
(else
(i64.add
- (call_ref (i64.sub (local.get 0) (i64.const 2)) (global.get $fib))
- (call_ref (i64.sub (local.get 0) (i64.const 1)) (global.get $fib))
+ (call_ref $ll (i64.sub (local.get 0) (i64.const 2)) (global.get $fib))
+ (call_ref $ll (i64.sub (local.get 0) (i64.const 1)) (global.get $fib))
)
)
)
@@ -80,13 +80,13 @@
(func $even (export "even") (type $ll)
(if (result i64) (i64.eqz (local.get 0))
(then (i64.const 44))
- (else (call_ref (i64.sub (local.get 0) (i64.const 1)) (global.get $odd)))
+ (else (call_ref $ll (i64.sub (local.get 0) (i64.const 1)) (global.get $odd)))
)
)
(func $odd (export "odd") (type $ll)
(if (result i64) (i64.eqz (local.get 0))
(then (i64.const 99))
- (else (call_ref (i64.sub (local.get 0) (i64.const 1)) (global.get $even)))
+ (else (call_ref $ll (i64.sub (local.get 0) (i64.const 1)) (global.get $even)))
)
)
)
@@ -127,8 +127,9 @@
(assert_invalid
(module
+ (type $t (func))
(func $f (param $r externref)
- (call_ref (local.get $r))
+ (call_ref $t (local.get $r))
)
)
"type mismatch"