diff options
author | Heejin Ahn <aheejin@gmail.com> | 2019-10-10 09:29:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-10 09:29:54 -0700 |
commit | 1582c525a620b00f9a8c8a1134078e2665e40363 (patch) | |
tree | 37a1925c05e8d42f863f07c38689da116d1399f9 /src | |
parent | 13725e54f845ec84947130aaa888b4c11e53f9af (diff) | |
download | binaryen-1582c525a620b00f9a8c8a1134078e2665e40363.tar.gz binaryen-1582c525a620b00f9a8c8a1134078e2665e40363.tar.bz2 binaryen-1582c525a620b00f9a8c8a1134078e2665e40363.zip |
Add push/pop support for anyref (#2376)
This adds push/pop support for anyref. This also adds missing C API
tests for push/pop.
Diffstat (limited to 'src')
-rw-r--r-- | src/gen-s-parser.inc | 18 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 6 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc index 7f1958582..85702d326 100644 --- a/src/gen-s-parser.inc +++ b/src/gen-s-parser.inc @@ -8,13 +8,21 @@ char op[27] = {'\0'}; strncpy(op, s[0]->c_str(), 26); switch (op[0]) { case 'a': { - switch (op[7]) { - case 'f': - if (strcmp(op, "atomic.fence") == 0) { return makeAtomicFence(s); } - goto parse_error; + switch (op[1]) { case 'n': - if (strcmp(op, "atomic.notify") == 0) { return makeAtomicNotify(s); } + if (strcmp(op, "anyref.pop") == 0) { return makePop(anyref); } goto parse_error; + case 't': { + switch (op[7]) { + case 'f': + if (strcmp(op, "atomic.fence") == 0) { return makeAtomicFence(s); } + goto parse_error; + case 'n': + if (strcmp(op, "atomic.notify") == 0) { return makeAtomicNotify(s); } + goto parse_error; + default: goto parse_error; + } + } default: goto parse_error; } } diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index b11d2769b..8f49b105c 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -1872,6 +1872,12 @@ function wrapModule(module, self) { }, }; + self['anyref'] = { + 'pop': function() { + return Module['_BinaryenPop'](module, Module['anyref']); + } + }; + self['exnref'] = { 'pop': function() { return Module['_BinaryenPop'](module, Module['exnref']); |