Skip to content

Commit 9e8cba5

Browse files
simplify
1 parent 043c480 commit 9e8cba5

File tree

9 files changed

+4
-156
lines changed

9 files changed

+4
-156
lines changed

std/assembly/util/number.ts

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -742,19 +742,8 @@ function dtoa_core(buffer: usize, value: f64, isSingle: bool): i32 {
742742
@lazy @inline const dtoa_buf = memory.data(MAX_DOUBLE_LENGTH << 1);
743743

744744
export function dtoa<T extends number>(value: T): String {
745-
if (isInteger<T>()) {
746-
return dtoa_impl(<f64>value, false);
747-
}
748-
749-
if (isFloat<T>()) {
750-
if (sizeof<T>() == 4) {
751-
return dtoa_impl(<f32>value, true);
752-
} else {
753-
return dtoa_impl(<f64>value, false);
754-
}
755-
}
756-
757-
ERROR("dtoa: unsupported type");
745+
const isSingle = isFloat<T>() && sizeof<T>() == 4;
746+
return dtoa_impl(value, isSingle);
758747
}
759748

760749
// @ts-ignore: decorator
@@ -850,19 +839,8 @@ export function itoa_buffered<T extends number>(buffer: usize, value: T): u32 {
850839
}
851840

852841
export function dtoa_buffered<T extends number>(buffer: usize, value: T): u32 {
853-
if (isInteger<T>()) {
854-
return dtoa_buffered_impl(buffer, <f64>value, false);
855-
}
856-
857-
if (isFloat<T>()) {
858-
if (sizeof<T>() == 4) {
859-
return dtoa_buffered_impl(buffer, <f32>value, true);
860-
} else {
861-
return dtoa_buffered_impl(buffer, <f64>value, false);
862-
}
863-
}
864-
865-
ERROR("dtoa_buffered: unsupported type");
842+
const isSingle = isFloat<T>() && sizeof<T>() == 4;
843+
return dtoa_buffered_impl(buffer, value, isSingle);
866844
}
867845

868846
// @ts-ignore: decorator

tests/compiler/issues/2873.debug.wat

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3983,14 +3983,6 @@
39833983
(local $value|3 f64)
39843984
(local $isSingle i32)
39853985
(local $sign i32)
3986-
i32.const 0
3987-
drop
3988-
i32.const 1
3989-
drop
3990-
i32.const 4
3991-
i32.const 4
3992-
i32.eq
3993-
drop
39943986
block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32)
39953987
local.get $buffer
39963988
local.set $buffer|2
@@ -4086,14 +4078,6 @@
40864078
(local $value|3 f64)
40874079
(local $isSingle i32)
40884080
(local $sign i32)
4089-
i32.const 0
4090-
drop
4091-
i32.const 1
4092-
drop
4093-
i32.const 8
4094-
i32.const 4
4095-
i32.eq
4096-
drop
40974081
block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32)
40984082
local.get $buffer
40994083
local.set $buffer|2
@@ -5197,14 +5181,6 @@
51975181
global.get $~lib/memory/__stack_pointer
51985182
i32.const 0
51995183
i32.store
5200-
i32.const 0
5201-
drop
5202-
i32.const 1
5203-
drop
5204-
i32.const 4
5205-
i32.const 4
5206-
i32.eq
5207-
drop
52085184
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
52095185
local.get $value
52105186
f64.promote_f32
@@ -5282,14 +5258,6 @@
52825258
global.get $~lib/memory/__stack_pointer
52835259
i32.const 0
52845260
i32.store
5285-
i32.const 0
5286-
drop
5287-
i32.const 1
5288-
drop
5289-
i32.const 8
5290-
i32.const 4
5291-
i32.eq
5292-
drop
52935261
block $~lib/util/number/dtoa_impl|inlined.1 (result i32)
52945262
local.get $value
52955263
local.set $value|1

tests/compiler/resolve-binary.debug.wat

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7719,14 +7719,6 @@
77197719
global.get $~lib/memory/__stack_pointer
77207720
i32.const 0
77217721
i32.store
7722-
i32.const 0
7723-
drop
7724-
i32.const 1
7725-
drop
7726-
i32.const 8
7727-
i32.const 4
7728-
i32.eq
7729-
drop
77307722
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
77317723
local.get $value
77327724
local.set $value|1

tests/compiler/resolve-elementaccess.debug.wat

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5325,14 +5325,6 @@
53255325
global.get $~lib/memory/__stack_pointer
53265326
i32.const 0
53275327
i32.store
5328-
i32.const 0
5329-
drop
5330-
i32.const 1
5331-
drop
5332-
i32.const 4
5333-
i32.const 4
5334-
i32.eq
5335-
drop
53365328
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
53375329
local.get $value
53385330
f64.promote_f32

tests/compiler/resolve-ternary.debug.wat

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4774,14 +4774,6 @@
47744774
global.get $~lib/memory/__stack_pointer
47754775
i32.const 0
47764776
i32.store
4777-
i32.const 0
4778-
drop
4779-
i32.const 1
4780-
drop
4781-
i32.const 8
4782-
i32.const 4
4783-
i32.eq
4784-
drop
47854777
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
47864778
local.get $value
47874779
local.set $value|1

tests/compiler/std/array.debug.wat

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8199,14 +8199,6 @@
81998199
(local $value|3 f64)
82008200
(local $isSingle i32)
82018201
(local $sign i32)
8202-
i32.const 0
8203-
drop
8204-
i32.const 1
8205-
drop
8206-
i32.const 8
8207-
i32.const 4
8208-
i32.eq
8209-
drop
82108202
block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32)
82118203
local.get $buffer
82128204
local.set $buffer|2
@@ -46901,14 +46893,6 @@
4690146893
global.get $~lib/memory/__stack_pointer
4690246894
i32.const 0
4690346895
i32.store
46904-
i32.const 0
46905-
drop
46906-
i32.const 1
46907-
drop
46908-
i32.const 8
46909-
i32.const 4
46910-
i32.eq
46911-
drop
4691246896
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
4691346897
local.get $value
4691446898
local.set $value|1

tests/compiler/std/string.debug.wat

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29608,14 +29608,6 @@
2960829608
global.get $~lib/memory/__stack_pointer
2960929609
i32.const 0
2961029610
i32.store
29611-
i32.const 0
29612-
drop
29613-
i32.const 1
29614-
drop
29615-
i32.const 8
29616-
i32.const 4
29617-
i32.eq
29618-
drop
2961929611
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
2962029612
local.get $value
2962129613
local.set $value|1
@@ -29692,14 +29684,6 @@
2969229684
global.get $~lib/memory/__stack_pointer
2969329685
i32.const 0
2969429686
i32.store
29695-
i32.const 0
29696-
drop
29697-
i32.const 1
29698-
drop
29699-
i32.const 4
29700-
i32.const 4
29701-
i32.eq
29702-
drop
2970329687
block $~lib/util/number/dtoa_impl|inlined.1 (result i32)
2970429688
local.get $value
2970529689
f64.promote_f32
@@ -29777,8 +29761,6 @@
2977729761
global.get $~lib/memory/__stack_pointer
2977829762
i32.const 0
2977929763
i32.store
29780-
i32.const 1
29781-
drop
2978229764
block $~lib/util/number/dtoa_impl|inlined.2 (result i32)
2978329765
local.get $value
2978429766
f64.convert_i32_u

tests/compiler/std/typedarray.debug.wat

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8268,14 +8268,6 @@
82688268
(local $value|3 f64)
82698269
(local $isSingle i32)
82708270
(local $sign i32)
8271-
i32.const 0
8272-
drop
8273-
i32.const 1
8274-
drop
8275-
i32.const 4
8276-
i32.const 4
8277-
i32.eq
8278-
drop
82798271
block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32)
82808272
local.get $buffer
82818273
local.set $buffer|2
@@ -8363,14 +8355,6 @@
83638355
(local $value|3 f64)
83648356
(local $isSingle i32)
83658357
(local $sign i32)
8366-
i32.const 0
8367-
drop
8368-
i32.const 1
8369-
drop
8370-
i32.const 8
8371-
i32.const 4
8372-
i32.eq
8373-
drop
83748358
block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32)
83758359
local.get $buffer
83768360
local.set $buffer|2
@@ -93998,14 +93982,6 @@
9399893982
global.get $~lib/memory/__stack_pointer
9399993983
i32.const 0
9400093984
i32.store
94001-
i32.const 0
94002-
drop
94003-
i32.const 1
94004-
drop
94005-
i32.const 4
94006-
i32.const 4
94007-
i32.eq
94008-
drop
9400993985
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
9401093986
local.get $value
9401193987
f64.promote_f32
@@ -94083,14 +94059,6 @@
9408394059
global.get $~lib/memory/__stack_pointer
9408494060
i32.const 0
9408594061
i32.store
94086-
i32.const 0
94087-
drop
94088-
i32.const 1
94089-
drop
94090-
i32.const 8
94091-
i32.const 4
94092-
i32.eq
94093-
drop
9409494062
block $~lib/util/number/dtoa_impl|inlined.1 (result i32)
9409594063
local.get $value
9409694064
local.set $value|1

tests/compiler/templateliteral.debug.wat

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6448,14 +6448,6 @@
64486448
global.get $~lib/memory/__stack_pointer
64496449
i32.const 0
64506450
i32.store
6451-
i32.const 0
6452-
drop
6453-
i32.const 1
6454-
drop
6455-
i32.const 8
6456-
i32.const 4
6457-
i32.eq
6458-
drop
64596451
block $~lib/util/number/dtoa_impl|inlined.0 (result i32)
64606452
local.get $value
64616453
local.set $value|1

0 commit comments

Comments
 (0)