diff options
author | Heejin Ahn <aheejin@gmail.com> | 2019-07-24 13:15:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-24 13:15:07 -0700 |
commit | 62e2d1fa038ccf96bfd61a8a5864c7a9d5d45be6 (patch) | |
tree | 8f3208aefbd1710b54cddc42f03f70c9247d944e | |
parent | a2741b360b444a26cd87327a3d60a601bb33119f (diff) | |
download | binaryen-62e2d1fa038ccf96bfd61a8a5864c7a9d5d45be6.tar.gz binaryen-62e2d1fa038ccf96bfd61a8a5864c7a9d5d45be6.tar.bz2 binaryen-62e2d1fa038ccf96bfd61a8a5864c7a9d5d45be6.zip |
Allow 0-value events (#2256)
Before I disallowed events with no values, but spec does not say
anything about it, so I think that restriction is not necessary.
-rw-r--r-- | src/wasm/wasm-validator.cpp | 3 | ||||
-rw-r--r-- | test/events.wast | 1 | ||||
-rw-r--r-- | test/events.wast.from-wast | 2 | ||||
-rw-r--r-- | test/events.wast.fromBinary | 6 | ||||
-rw-r--r-- | test/events.wast.fromBinary.noDebugInfo | 6 | ||||
-rw-r--r-- | test/spec/events.wast | 5 |
6 files changed, 11 insertions, 12 deletions
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index 372c5bf6d..73731d3e5 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -1943,9 +1943,6 @@ static void validateEvents(Module& module, ValidationInfo& info) { FunctionType* ft = module.getFunctionType(curr->type); info.shouldBeEqual( ft->result, none, curr->name, "Event type's result type should be none"); - info.shouldBeTrue(!curr->params.empty(), - curr->name, - "There should be 1 or more values in an event type"); info.shouldBeEqual(curr->attribute, (unsigned)0, curr->attribute, diff --git a/test/events.wast b/test/events.wast index a2c88b977..f96cf6c95 100644 --- a/test/events.wast +++ b/test/events.wast @@ -3,6 +3,7 @@ (module (event (attr 0) (param i32)) (event $e (attr 0) (param i32 f32)) + (event $empty (attr 0)) (event $e-params0 (attr 0) (param i32 f32)) (event $e-params1 (attr 0) (param i32) (param f32)) diff --git a/test/events.wast.from-wast b/test/events.wast.from-wast index bcb78f6df..b48c3b46d 100644 --- a/test/events.wast.from-wast +++ b/test/events.wast.from-wast @@ -1,10 +1,12 @@ (module (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$vif (func (param i32 f32))) + (type $FUNCSIG$v (func)) (import "env" "im0" (event $e-import (attr 0) (param i32))) (import "env" "im1" (event $import$event1 (attr 0) (param i32 f32))) (event $2 (attr 0) (param i32)) (event $e (attr 0) (param i32 f32)) + (event $empty (attr 0) (param)) (event $e-params0 (attr 0) (param i32 f32)) (event $e-params1 (attr 0) (param i32 f32)) (event $e-export (attr 0) (param i32)) diff --git a/test/events.wast.fromBinary b/test/events.wast.fromBinary index ce19c63bd..d4b65f40a 100644 --- a/test/events.wast.fromBinary +++ b/test/events.wast.fromBinary @@ -1,13 +1,15 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 f32))) + (type $2 (func)) (import "env" "im0" (event $eimport$0 (attr 0) (param i32))) (import "env" "im1" (event $eimport$1 (attr 0) (param i32 f32))) (event $event$0 (attr 0) (param i32)) (event $event$1 (attr 0) (param i32 f32)) - (event $event$2 (attr 0) (param i32 f32)) + (event $event$2 (attr 0) (param)) (event $event$3 (attr 0) (param i32 f32)) - (event $event$4 (attr 0) (param i32)) + (event $event$4 (attr 0) (param i32 f32)) + (event $event$5 (attr 0) (param i32)) (export "ex1" (event $event$1)) ) diff --git a/test/events.wast.fromBinary.noDebugInfo b/test/events.wast.fromBinary.noDebugInfo index ce19c63bd..d4b65f40a 100644 --- a/test/events.wast.fromBinary.noDebugInfo +++ b/test/events.wast.fromBinary.noDebugInfo @@ -1,13 +1,15 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 f32))) + (type $2 (func)) (import "env" "im0" (event $eimport$0 (attr 0) (param i32))) (import "env" "im1" (event $eimport$1 (attr 0) (param i32 f32))) (event $event$0 (attr 0) (param i32)) (event $event$1 (attr 0) (param i32 f32)) - (event $event$2 (attr 0) (param i32 f32)) + (event $event$2 (attr 0) (param)) (event $event$3 (attr 0) (param i32 f32)) - (event $event$4 (attr 0) (param i32)) + (event $event$4 (attr 0) (param i32 f32)) + (event $event$5 (attr 0) (param i32)) (export "ex1" (event $event$1)) ) diff --git a/test/spec/events.wast b/test/spec/events.wast index ee7ade192..2f4213927 100644 --- a/test/spec/events.wast +++ b/test/spec/events.wast @@ -20,11 +20,6 @@ ) (assert_invalid - (module (event $e (attr 0))) - "There should be 1 or more values in an event type" -) - -(assert_invalid (module (event $e (attr 1) (param i32))) "Currently only attribute 0 is supported" ) |