Skip to content

Commit f81250a

Browse files
authored
refactor(compiler): Modernize various compiler-internal helpers (#1341)
1 parent 4ed8acb commit f81250a

File tree

8 files changed

+195
-141
lines changed

8 files changed

+195
-141
lines changed

src/glue/binaryen.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ module.exports = binaryen;
99

1010
const { Module } = require("../module");
1111

12-
Module.prototype.toText = function() {
12+
Module.prototype.toText = function toText() {
1313
// NOTE: Conversion to StackIR can yield conversion artifacts like sequences
1414
// of unreachable statements not actually emitted by the compiler. Optimizing
1515
// StackIR removes these again, but may also suppress useless code emitted by
1616
// the compiler that's then no longer visible in tests. Both not ideal.
1717
return binaryen.wrapModule(this.ref).emitStackIR(/* optimize-stack-ir */ true);
1818
};
1919

20-
Module.prototype.toAsmjs = function() {
20+
Module.prototype.toAsmjs = function toAsmjs() {
2121
return binaryen.wrapModule(this.ref).emitAsmjs();
2222
};

src/glue/js/collections.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* @license Apache-2.0
44
*/
55

6-
global.Map_keys = function(map) {
6+
global.Map_keys = function Map_keys(map) {
77
return Array.from(map.keys());
88
};
99

10-
global.Map_values = function(map) {
10+
global.Map_values = function Map_values(map) {
1111
return Array.from(map.values());
1212
};
1313

14-
global.Set_values = function(set) {
14+
global.Set_values = function Set_values(set) {
1515
return Array.from(set.values());
1616
};

src/glue/js/float.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@ const F64 = new Float64Array(1);
99
const F32 = new Float32Array(F64.buffer);
1010
const I32 = new Int32Array(F64.buffer);
1111

12-
global.f32_as_i32 = function(value) {
12+
global.f32_as_i32 = function f32_as_i32(value) {
1313
F32[0] = value;
1414
return I32[0];
1515
};
1616

17-
global.i32_as_f32 = function(value) {
17+
global.i32_as_f32 = function i32_as_f32(value) {
1818
I32[0] = value;
1919
return F32[0];
2020
};
2121

22-
global.f64_as_i64 = function(value) {
22+
global.f64_as_i64 = function f64_as_i64(value) {
2323
F64[0] = value;
2424
return i64_new(I32[0], I32[1]);
2525
};
2626

27-
global.i64_as_f64 = function(value) {
27+
global.i64_as_f64 = function i64_as_f64(value) {
2828
I32[0] = i64_low(value);
2929
I32[1] = i64_high(value);
3030
return F64[0];

src/glue/js/i64.js

+38-38
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,31 @@ global.i64_zero = Long.ZERO;
1111
global.i64_one = Long.ONE;
1212
global.i64_neg_one = Long.fromInt(-1);
1313

14-
global.i64_new = function(lo, hi) {
14+
global.i64_new = function i64_new(lo, hi) {
1515
return Long.fromBits(lo, hi);
1616
};
1717

18-
global.i64_low = function(value) {
18+
global.i64_low = function i64_low(value) {
1919
return value.low;
2020
};
2121

22-
global.i64_high = function(value) {
22+
global.i64_high = function i64_high(value) {
2323
return value.high;
2424
};
2525

26-
global.i64_add = function(left, right) {
26+
global.i64_add = function i64_add(left, right) {
2727
return left.add(right);
2828
};
2929

30-
global.i64_sub = function(left, right) {
30+
global.i64_sub = function i64_sub(left, right) {
3131
return left.sub(right);
3232
};
3333

34-
global.i64_mul = function(left, right) {
34+
global.i64_mul = function i64_mul(left, right) {
3535
return left.mul(right);
3636
};
3737

38-
global.i64_pow = function(left, right) {
38+
global.i64_pow = function i64_pow(left, right) {
3939
var rightLo = right.low;
4040
var rightHi = right.high;
4141
if (rightHi <= 0) {
@@ -60,121 +60,121 @@ global.i64_pow = function(left, right) {
6060
return result;
6161
};
6262

63-
global.i64_div = function(left, right) {
63+
global.i64_div = function i64_div(left, right) {
6464
return left.div(right);
6565
};
6666

67-
global.i64_div_u = function(left, right) {
67+
global.i64_div_u = function i64_div_u(left, right) {
6868
return left.toUnsigned().div(right.toUnsigned()).toSigned();
6969
};
7070

71-
global.i64_rem = function(left, right) {
71+
global.i64_rem = function i64_rem(left, right) {
7272
return left.mod(right);
7373
};
7474

75-
global.i64_rem_u = function(left, right) {
75+
global.i64_rem_u = function i64_rem_u(left, right) {
7676
return left.toUnsigned().mod(right.toUnsigned()).toSigned();
7777
};
7878

79-
global.i64_and = function(left, right) {
79+
global.i64_and = function i64_and(left, right) {
8080
return left.and(right);
8181
};
8282

83-
global.i64_or = function(left, right) {
83+
global.i64_or = function i64_or(left, right) {
8484
return left.or(right);
8585
};
8686

87-
global.i64_xor = function(left, right) {
87+
global.i64_xor = function i64_xor(left, right) {
8888
return left.xor(right);
8989
};
9090

91-
global.i64_shl = function(left, right) {
91+
global.i64_shl = function i64_shl(left, right) {
9292
return left.shl(right);
9393
};
9494

95-
global.i64_shr = function(left, right) {
95+
global.i64_shr = function i64_shr(left, right) {
9696
return left.shr(right);
9797
};
9898

99-
global.i64_shr_u = function(left, right) {
99+
global.i64_shr_u = function i64_shr_u(left, right) {
100100
return left.shru(right);
101101
};
102102

103-
global.i64_not = function(value) {
103+
global.i64_not = function i64_not(value) {
104104
return value.not();
105105
};
106106

107-
global.i64_eq = function(left, right) {
107+
global.i64_eq = function i64_eq(left, right) {
108108
return left.eq(right);
109109
};
110110

111-
global.i64_ne = function(left, right) {
111+
global.i64_ne = function i64_ne(left, right) {
112112
return left.ne(right);
113113
};
114114

115-
global.i64_gt = function(left, right) {
115+
global.i64_gt = function i64_gt(left, right) {
116116
return left.gt(right);
117117
};
118118

119-
global.i64_align = function(value, alignment) {
119+
global.i64_align = function i64_align(value, alignment) {
120120
assert(alignment && (alignment & (alignment - 1)) == 0);
121121
var mask = Long.fromInt(alignment - 1);
122122
return value.add(mask).and(mask.not());
123123
};
124124

125-
global.i64_is_i8 = function(value) {
125+
global.i64_is_i8 = function i64_is_i8(value) {
126126
return value.high === 0 && (value.low >= 0 && value.low <= i8.MAX_VALUE)
127127
|| value.high === -1 && (value.low >= i8.MIN_VALUE && value.low < 0);
128128
};
129129

130-
global.i64_is_i16 = function(value) {
130+
global.i64_is_i16 = function i64_is_i16(value) {
131131
return value.high === 0 && (value.low >= 0 && value.low <= i16.MAX_VALUE)
132132
|| value.high === -1 && (value.low >= i16.MIN_VALUE && value.low < 0);
133133
};
134134

135-
global.i64_is_i32 = function(value) {
135+
global.i64_is_i32 = function i64_is_i32(value) {
136136
return (value.high === 0 && value.low >= 0)
137137
|| (value.high === -1 && value.low < 0);
138138
};
139139

140-
global.i64_is_u8 = function(value) {
141-
return value.high === 0 && value.low >= 0 && value.low <= u8.MAX_VALUE;
140+
global.i64_is_u8 = function i64_is_u8(value) {
141+
return value.high === 0 && (value.low >>> 0) <= u8.MAX_VALUE;
142142
};
143143

144-
global.i64_is_u16 = function(value) {
145-
return value.high === 0 && value.low >= 0 && value.low <= u16.MAX_VALUE;
144+
global.i64_is_u16 = function i64_is_u16(value) {
145+
return value.high === 0 && (value.low >>> 0) <= u16.MAX_VALUE;
146146
};
147147

148-
global.i64_is_u32 = function(value) {
148+
global.i64_is_u32 = function i64_is_u32(value) {
149149
return value.high === 0;
150150
};
151151

152-
global.i64_is_bool = function(value) {
153-
return value.high === 0 && (value.low === 0 || value.low === 1);
152+
global.i64_is_bool = function i64_is_bool(value) {
153+
return (value.high | (value.low & ~1)) === 0;
154154
};
155155

156156
const minSafeF32 = Long.fromNumber(f32.MIN_SAFE_INTEGER);
157157
const maxSafeF32 = Long.fromNumber(f32.MAX_SAFE_INTEGER);
158158

159-
global.i64_is_f32 = function(value) {
159+
global.i64_is_f32 = function i64_is_f32(value) {
160160
return value.gte(minSafeF32) && value.lte(maxSafeF32);
161161
};
162162

163163
const minSafeF64 = Long.fromNumber(f64.MIN_SAFE_INTEGER);
164164
const maxSafeF64 = Long.fromNumber(f64.MAX_SAFE_INTEGER);
165165

166-
global.i64_is_f64 = function(value) {
166+
global.i64_is_f64 = function i64_is_f64(value) {
167167
return value.gte(minSafeF64) && value.lte(maxSafeF64);
168168
};
169169

170-
global.i64_to_f32 = function(value) {
170+
global.i64_to_f32 = function i64_to_f32(value) {
171171
return global.Math.fround(value.toNumber());
172172
};
173173

174-
global.i64_to_f64 = function(value) {
174+
global.i64_to_f64 = function i64_to_f64(value) {
175175
return value.toNumber();
176176
};
177177

178-
global.i64_to_string = function(value, unsigned) {
179-
return (unsigned ? value.toUnsigned() : value).toString();
178+
global.i64_to_string = function i64_to_string(value, unsigned) {
179+
return unsigned ? value.toUnsigned().toString() : value.toString();
180180
};

src/glue/wasm/collections.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
/* eslint-disable @typescript-eslint/no-unused-vars */
77

88
// @ts-ignore: decorator
9-
@global
9+
@global @inline
1010
function Map_keys<K,V>(map: Map<K,V>): K[] {
1111
return map.keys(); // preliminary
1212
}
1313

1414
// @ts-ignore: decorator
15-
@global
15+
@global @inline
1616
function Map_values<K,V>(map: Map<K,V>): V[] {
1717
return map.values(); // preliminary
1818
}
1919

2020
// @ts-ignore: decorator
21-
@global
21+
@global @inline
2222
function Set_values<V>(set: Set<V>): V[] {
2323
return set.values(); // preliminary
2424
}

src/glue/wasm/float.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,25 @@
66
/* eslint-disable @typescript-eslint/no-unused-vars */
77

88
// @ts-ignore: decorator
9-
@global
9+
@global @inline
1010
function f32_as_i32(value: f32): i32 {
1111
return reinterpret<i32>(value);
1212
}
1313

1414
// @ts-ignore: decorator
15-
@global
15+
@global @inline
1616
function i32_as_f32(value: i32): f32 {
1717
return reinterpret<f32>(value);
1818
}
1919

2020
// @ts-ignore: decorator
21-
@global
21+
@global @inline
2222
function f64_as_i64(value: f64): i64 {
2323
return reinterpret<i64>(value);
2424
}
2525

2626
// @ts-ignore: decorator
27-
@global
27+
@global @inline
2828
function i64_as_f64(value: i64): f64 {
2929
return reinterpret<f64>(value);
3030
}

0 commit comments

Comments
 (0)