summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-07-24 13:15:07 -0700
committerGitHub <noreply@github.com>2019-07-24 13:15:07 -0700
commit62e2d1fa038ccf96bfd61a8a5864c7a9d5d45be6 (patch)
tree8f3208aefbd1710b54cddc42f03f70c9247d944e
parenta2741b360b444a26cd87327a3d60a601bb33119f (diff)
downloadbinaryen-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.cpp3
-rw-r--r--test/events.wast1
-rw-r--r--test/events.wast.from-wast2
-rw-r--r--test/events.wast.fromBinary6
-rw-r--r--test/events.wast.fromBinary.noDebugInfo6
-rw-r--r--test/spec/events.wast5
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"
)