Skip to content

Commit c7b349d

Browse files
author
Mauro Bringolf
committed
Migrate to wast as source for polyfills
1 parent 75cf616 commit c7b349d

18 files changed

+109
-1008
lines changed

packages/proposal-sign-extension-ops/src/index.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
import { traverse, callInstruction, numberLiteral } from "@webassemblyjs/ast";
2-
import i32_extend8_s from "./polyfills/i32_extend8_s.json";
3-
import i32_extend16_s from "./polyfills/i32_extend16_s.json";
4-
import i64_extend8_s from "./polyfills/i64_extend8_s.json";
5-
import i64_extend16_s from "./polyfills/i64_extend16_s.json";
6-
import i64_extend32_s from "./polyfills/i64_extend32_s.json";
2+
import { parse } from "@webassemblyjs/wast-parser";
3+
import { readFileSync } from "fs";
4+
import path from "path";
5+
6+
const funcFromWast = sourcePath => {
7+
const ast = parse(readFileSync(sourcePath, "utf8"));
8+
return ast.body[0].fields.find(f => f.type === "Func");
9+
};
710

811
class Polyfills {
912
constructor(startIndex) {
1013
this.startIndex = startIndex;
1114

1215
this.asts = {
13-
i32_extend8_s,
14-
i32_extend16_s,
15-
i64_extend8_s,
16-
i64_extend16_s,
17-
i64_extend32_s
16+
i32_extend8_s: funcFromWast(
17+
path.join(__dirname, "/polyfills/i32_extend8_s.wast")
18+
),
19+
i32_extend16_s: funcFromWast(
20+
path.join(__dirname, "/polyfills/i32_extend16_s.wast")
21+
),
22+
i64_extend8_s: funcFromWast(
23+
path.join(__dirname, "/polyfills/i64_extend8_s.wast")
24+
),
25+
i64_extend16_s: funcFromWast(
26+
path.join(__dirname, "/polyfills/i64_extend16_s.wast")
27+
),
28+
i64_extend32_s: funcFromWast(
29+
path.join(__dirname, "/polyfills/i64_extend32_s.wast")
30+
)
1831
};
1932

2033
this.instructions = Object.keys(this.asts);

packages/proposal-sign-extension-ops/src/polyfills/i32_extend16_s.json

Lines changed: 0 additions & 165 deletions
This file was deleted.

packages/proposal-sign-extension-ops/src/polyfills/i32_extend16_s.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
(module
2+
(type (func (param i32) (result i32)))
3+
(func $packages/proposal-sign-extension-ops/src/polyfills/i32_extend16_s/i32_extend16_s (param i32) (result i32)
4+
(get_local 0)
5+
(i32.const -32768)
6+
(i32.or)
7+
(get_local 0)
8+
(i32.const 32767)
9+
(i32.and)
10+
(get_local 0)
11+
(i32.const 32768)
12+
(i32.and)
13+
(select)
14+
)
15+
(export "i32_extend16_s" (func $packages/proposal-sign-extension-ops/src/polyfills/i32_extend16_s/i32_extend16_s))
16+
)

0 commit comments

Comments
 (0)