Commit Graph

80 Commits

Author SHA1 Message Date
Ben Noordhuis
3bb2ca360e Remove unnecessary ssize_t posix-ism
ssize_t is not always available and the cast it was used in wasn't
necessary in the first place, the value already has the right type.

Note that the field malloc_limit is an int64_t in JSMemoryUsage whereas it
is a size_t in JSMallocState.
2024-02-16 10:25:29 +01:00
Charlie Gordon
c06af876f6 Improve string concatenation hack
- add more cases of in place string concatenation
  this temporary hack improves the microbench timing by 30% but
  has little impact on the test262 timings.
2024-02-15 10:30:04 +01:00
Charlie Gordon
95e0aa0526 Reverse e140122202
- remove temporary fix for MemorySanitizer:
  setting p->u.array.count to 0 silenced a warning in JS_GetPropertyValue on a
  hacky test agains the length of fast_array object.
  This hack was removed by commit c3635861f6.
2024-02-13 09:45:58 +01:00
Charlie Gordon
1fe04149e9 Fix test262 error
- force evaluation order in `set_date_fields`
- fix evaluation error in test262/test/built-ins/Date/UTC/fp-evaluation-order.js:19:
  unexpected error: Test262Error: precision in MakeDate Expected SameValue(«34448384», «34447360») to be true
2024-02-12 18:37:37 +01:00
Ben Noordhuis
e140122202 Fix sloppy mode arguments uninitialized value use
MemorySanitizer complained about uninitialized reads in
the indexed property code path in JS_GetPropertyValue()
with JS_CLASS_MAPPED_ARGUMENTS objects.
2024-02-11 23:54:19 +01:00
Ben Noordhuis
6dbf01bb1f Remove unsafe sprintf() and strcat() calls
Prep work for enabling the sanitizers on macos CI since they are marked
as deprecated and cause the build to fail when -Werror is enabled.
2024-02-11 21:58:14 +01:00
Charlie Gordon
6535064577 Fix undefined behavior (UBSAN) 2024-02-11 21:32:36 +01:00
Saúl Ibarra Corretgé
e53d622359 Fix UB in js_dtoa1 2024-02-11 20:59:17 +01:00
Charlie Gordon
48deab1aeb Fix runtime bugs
- fix string leak in `js_printf_internal` on errors
- read `errno` before potential side effects in `js_os_stat`
2024-02-11 12:49:40 +01:00
Charlie Gordon
37bd4ae62d Strip trailing spaces 2024-02-10 16:19:17 +01:00
Fabrice Bellard
6f480abbc8 avoid using INT64_MAX in double comparisons because it cannot be exactly represented as a double (bnoordhuis) 2024-02-03 15:48:57 +01:00
Fabrice Bellard
00967aac24 fixed Promise return in the REPL by using a wrapper object in async std.evalScript() (github issue #231) 2024-02-03 15:47:42 +01:00
Fabrice Bellard
c6cc6a9a5e export JS_GetModuleNamespace (github issue #34) 2024-01-27 13:27:32 +01:00
Fabrice Bellard
cd666a851f simplified and fixed arrow function parsing (github issue #226) 2024-01-27 13:12:54 +01:00
Fabrice Bellard
efdb722f02 fixed JS_GetScriptOrModuleName() in direct or indirect eval code 2024-01-13 11:15:06 +01:00
Fabrice Bellard
9a4379daf6 native cosmopolitan build 2024-01-11 15:29:19 +01:00
Fabrice Bellard
e66ce48872 more portable and Windows version for getTimezoneOffset() (github issue #122) 2024-01-11 15:26:39 +01:00
Fabrice Bellard
f25e5d4094 optional chaining fixes (github issue #103) 2024-01-09 19:15:40 +01:00
Fabrice Bellard
e1e65aca91 fixed Date.toLocaleString() (kuzmas) 2024-01-08 19:02:30 +01:00
Fabrice Bellard
c06c399f4f fixed next token parsing after a function definition (github issue #77) 2024-01-08 18:40:35 +01:00
Fabrice Bellard
5935a26eae fixed class name init in static initializers 2024-01-08 18:39:58 +01:00
Fabrice Bellard
c3635861f6 avoid potentially undefined behavior and make valgrind happy (bnoordhuis) (github issue #153) 2024-01-08 18:39:26 +01:00
Fabrice Bellard
df3781d082 make for in faster and spec compliant (github issue #137) 2024-01-06 14:43:29 +01:00
Fabrice Bellard
24aa7ba4f0 fixed test262: derived-this-uninitialized-realm.js 2024-01-06 14:42:43 +01:00
Fabrice Bellard
bd0b7048de added a comment for non-initialized warning in Valgrind (github issue #153) 2024-01-06 11:20:20 +01:00
Fabrice Bellard
3ab1c2b314 added 'in' operator for private fields 2024-01-02 16:11:20 +01:00
Fabrice Bellard
16057644f3 class static block (initial patch by bnoordhuis) 2024-01-02 16:10:43 +01:00
Fabrice Bellard
8f897d64d4 fixed crash in JS_DumpMemoryUsage (github issue #65) 2024-01-02 16:09:55 +01:00
Fabrice Bellard
e44b793e38 allow 'await' in the REPL and added os.sleepAsync() 2024-01-02 16:09:30 +01:00
Fabrice Bellard
8de4538ff3 make JS_NewClassID thread safe 2024-01-02 16:08:48 +01:00
Fabrice Bellard
5c120cd471 added Error cause 2024-01-02 16:08:08 +01:00
Fabrice Bellard
2ee6be705f added os.now() 2023-12-27 19:09:29 +01:00
Fabrice Bellard
2785ede778 fixed JS module autodetection with shebang (github issue #91) 2023-12-27 18:19:46 +01:00
Fabrice Bellard
b4d80502b6 fixed crash when resizing property shapes in case of OOM (github issue #129) 2023-12-27 18:19:06 +01:00
Fabrice Bellard
7414e5f67f fixed the garbage collection of async functions with closures (github issue #156) 2023-12-27 17:21:46 +01:00
Fabrice Bellard
399d916e66 removed memory leak 2023-12-27 17:20:10 +01:00
Fabrice Bellard
a47f40cde8 added RegExp 'd' flag (bnoordhuis) 2023-12-27 17:19:44 +01:00
Fabrice Bellard
5fc27dc7cf added Promise.withResolvers 2023-12-27 17:19:25 +01:00
Fabrice Bellard
feefdb1742 added Array.prototype.{with,toReversed,toSpliced,toSorted} and TypedArray.prototype.{with,toReversed,toSorted} (initial patch by bnoordhuis) 2023-12-27 17:19:00 +01:00
Fabrice Bellard
c2c773e135 added Object.groupBy and Map.groupBy (initial patch by bnoordhuis) 2023-12-27 17:18:39 +01:00
Fabrice Bellard
4876f72a1a added String.prototype.isWellFormed and String.prototype.toWellFormed 2023-12-27 17:16:47 +01:00
Fabrice Bellard
b8791e9b4a fixed detached TypedArray in sort() 2023-12-27 17:13:44 +01:00
Fabrice Bellard
6e4931c4ad top-level-await support - follow the spec in the implementation of the module linking and evaluation to avoid errors with cycling module dependencies 2023-12-27 17:10:47 +01:00
Fabrice Bellard
e9290401ce reduced JS_MAX_LOCAL_VARS (github issue #123) 2023-12-22 11:06:37 +01:00
Fabrice Bellard
e68993b678 removed unused JSContext field 2023-12-22 11:06:19 +01:00
Fabrice Bellard
07ff474992 use Unicode normalization in String.prototype.localeCompare 2023-12-22 11:05:49 +01:00
Fabrice Bellard
7cefa7b121 'for of' expression cannot start with 'async' 2023-12-22 11:05:18 +01:00
Fabrice Bellard
43420235d5 removed incorrect await in async yield* 2023-12-22 11:04:54 +01:00
Fabrice Bellard
3ba181e6c6 fixed define own property with writable=false on module namespace 2023-12-22 11:04:22 +01:00
Fabrice Bellard
c3599515c8 added container_of macro 2023-12-22 11:03:44 +01:00