Commit Graph

233 Commits

Author SHA1 Message Date
d62d84521e Reduce inlining verbosity
With debug info and source maps in place there is not much value anymore in emitting explicitly named blocks.
2018-11-12 14:54:08 +01:00
04a0cb8de7 Remove left-over line in std Array 2018-11-12 12:45:44 +01:00
c93f02df69 Update dist files 2018-11-12 09:15:16 +01:00
84ffa91db9 Add bounds checks to DataView and fix some lint issues 2018-11-12 09:11:04 +01:00
1882679807 Implement Array.isArray and Array#copyWithin (#331) 2018-11-12 07:45:40 +01:00
3f9758f35a Add DataView to standard library (#316) 2018-11-12 07:41:04 +01:00
9ab7384122 Improve date binding compatibility 2018-11-11 10:43:17 +01:00
1fad3d26c7 Add initial Date bindings
Doesn't do much, yet, because we can't get the timezone with a plain binding, but it's at least something.
2018-11-10 14:40:58 +01:00
410036e445 Use mixed Horner scheme in Math.exp/expm1 to improve instruction parallelization (#311) 2018-11-09 17:56:42 +01:00
54311fd0ab Improve bswap implementation (#323) 2018-11-09 17:51:32 +01:00
63b64ba69e Respect current byteOffset in Array#subarray (#329) 2018-11-09 12:29:39 +01:00
4f95dce6e2 Do not emit debug info by default
This basically flips the --noDebug flag to become a --debug flag, so some optimizations, like inlining, aren't skipped by default, which might be unexpected.
2018-11-09 12:28:10 +01:00
d93ca84aed Correct TypedArray#byteOffset handling and fix TypedArray#subarray (#328) 2018-11-08 23:19:41 +01:00
2bdc2a72f1 Use stack IR when emitting text format (#312) 2018-11-08 08:04:24 +01:00
dc4e2060ba Add unary postfix operator overloading (#309) 2018-10-30 15:23:18 +01:00
d864bef1eb Improve per-bit divmod loop for mod & rem (#307) 2018-10-30 15:10:50 +01:00
d864977a1a Add Array#concat and add a return type for Array#push (#214) 2018-10-30 15:07:53 +01:00
6f8a0fe03a Rework compileUnaryPostfixExpression
Previously this tried to reuse too much code, making it hard to implement operator overloading
2018-10-29 20:06:21 +01:00
e58582e9e9 Minor remquof improvemnts (#306) 2018-10-27 18:27:54 +02:00
83fa12164f Add TypedArray#fill (#274) 2018-10-26 18:28:31 +02:00
376afd45fc Improve Math routines; Add Mathf-specific prng (#297) 2018-10-26 00:10:17 +02:00
711f73b15d Implement String#split (#301) 2018-10-18 19:05:35 +02:00
f7c734789e Update Binaryen to latest; Various fixes 2018-10-11 08:49:08 +02:00
eeb8a8fd6c Make sure temp locals don't collide when allocating literal arrays, fixes #281
Originally part of #288
2018-10-03 01:32:28 +02:00
db0e82fbc3 Add a .data pointer on ArrayBuffers for convenience, see #291 2018-10-03 01:06:48 +02:00
b7e7be20cf Add String.fromUTF8 helper (see #291); Update dist files 2018-10-03 00:49:56 +02:00
53b030fed5 Add Array#join and Array#toString + dtoa (#275) 2018-10-01 22:57:56 +02:00
2874fb9d8a Add trimStart/End aliases (#287) 2018-09-30 22:21:34 +02:00
3f035395cd Add Array#fill (#250) 2018-09-19 00:59:22 +02:00
16d1a833dd Always add a null function at table index zero
This allows function references (a table index internally) to be nullable
2018-09-17 01:48:35 +02:00
9613d29d93 Add a setter for Pointer<T>#value 2018-09-15 03:19:41 +02:00
3f93808914 Integrate Buffer<T> experiment into Pointer<T>; Remove CArray 2018-09-15 02:54:30 +02:00
029dde7c3c Add raw buffer experiment to tests 2018-09-14 01:25:31 +02:00
d90cd085e5 Update Binaryen 2018-09-13 23:10:49 +02:00
6949cf9f9e Switch signed/unsigned instructions when upcasting 32- to 64-bit integers, fixes #247
Matches C semantics now. Turns around some instructions in tests, especially libm, but doesn't break anything.
2018-09-10 14:25:33 +02:00
c27b6e8951 Add integer power functions (#212) 2018-09-09 04:07:27 +02:00
4498b28442 Use outer-most identifier when resolving queued exports, fixes #248 2018-09-09 03:51:29 +02:00
947cee08c7 Implement <TypedArray>#sort and improve default comparator (#208) 2018-08-04 15:30:03 +02:00
631478c7c9 Rework static memory segment creation; Fix stdlib gc hooks not marking own fields; Align everything to 8 bytes that might be touched by GC 2018-08-04 00:36:59 +02:00
dc0f271fc2 Initial GC integration (#196) 2018-08-02 18:23:02 +02:00
671121bf70 Implement String#padStart/padEnd; Refactor internal string copy, compare and repeat (#171) 2018-07-25 16:25:53 +02:00
298a8f1688 Add String.fromCodePoint and 16-bit string compare (#174) 2018-07-23 14:32:55 +02:00
a1e2071da6 Fix n-body visualization 2018-07-22 02:55:46 +02:00
3c1f0dc1f8 More cleanup 2018-07-20 22:37:25 +02:00
2fa7d6678c Make sure all roots are iterated by delaying builtin generation; Cleanup 2018-07-20 20:33:50 +02:00
41ad2f8a70 Add a more convenient tracing utility for debugging; Fix basic GC test 2018-07-20 16:49:27 +02:00
fafaf423b4 Make an interface around gc.* fwiw 2018-07-19 16:15:56 +02:00
34839353fd Inline isNaN and isFinite
Looking at our existing tests it seems that inlining these can be performed by reusing locals most of the time, and sometimes enables erasing quite a bit of unnecessary code when optimizing.
2018-07-19 04:12:40 +02:00
26e46f6f86 Reintroduce builtin decorator so these can appear anywhere in stdlib again
Avoids wrapping an undocumented function within 'memory.size' for example.
2018-07-19 02:10:04 +02:00
a1b75b69b7 Rename memory instructions; Rework constant handling 2018-07-18 23:49:32 +02:00