Commit graph

48 commits

Author SHA1 Message Date
Brian Smith
1a6b3a822c Issue #1691 - Part 1: Provide a way of associating a private value with a script or module.
This is a prerequisite for dynamic import

(cherry picked from commit 2e2972647ee29340df51a804f05e40fc1da2c89b)
2023-04-30 21:16:28 +08:00
Job Bautista
6890cdd9a1 Issue #62 - Fix xul.dll link bustage relating to JSErrorNotes. 2023-03-28 12:09:42 +08:00
Martok
61c99bf6cd Issue #2089 - Implement AggregateError
Based-on: m-c 1568903/4,1641355(partial),1652148,1643397
2023-02-02 09:31:39 +08:00
Martok
8322304fb3 Issue #2089 - In Promises, use a C++ version of SpeciesConstructor when calling from C++
Based-on: m-c 1344656,1386534
2023-01-26 11:40:28 +08:00
Martok
6b50dd5d06 Issue #2089 - Use JS engine stack if necessary when reporting errors
Based-on: m-c 996060
2023-01-26 11:39:57 +08:00
Martok
531906eb87 No issue - add API to tell Profile Timeline Recording state to JS engine
Based-on: m-c 1342070/5
2023-01-26 11:38:40 +08:00
Martok
85af7f6e80 Issue #1952 - m-c 1383775: Clean up function toString/toSource code, remove remnants of source decompiler 2022-07-03 06:55:19 +08:00
Moonchild
80d7d43961 Issue #1742 - Part 1: Refactor rooting base class templates
Based on Bug 1325406
2022-05-31 09:12:19 +08:00
Moonchild
bdcb9cc504 Issue #1756 - Expose NumberFormat.formatToParts() to content. 2021-04-02 10:34:12 +08:00
Moonchild
5df0028108 Issue #1756 - Initial wrapped implementation in C++ 2021-04-02 10:34:10 +08:00
Moonchild
ec0865128b Issue #1624 - Make ion inlining optimizations a pref.
This also adds it to JS_SetGlobalJitCompilerOption()
2020-12-04 08:52:49 +08:00
Moonchild
dabd32f955 Issue #1656 - Part 7: Nuke vim config lines in JS 2020-09-25 22:04:24 +08:00
Moonchild
34db761758 Issue #618 - Simplify module resolve hook to be a function pointer
This is an ahead-of time port to try and address #1624.
This is based on BZ 1461751 and Jon Coppeard's work in it.
2020-08-29 08:08:41 +08:00
Moonchild
976239c8d0 [js] Add some utility functions to get the current JS runtime. 2020-08-29 08:08:38 +08:00
Moonchild
0d874713ef Issue #618 - Align error handling for module scripts with the spec (again)
This updates module implementation to match spec regarding handling of
instantiation errors, after it was changed yet again, this time to not remember
instantiation errors, but instead immediately rethrow applicable ones.

Ref: BZ 1420420
2020-08-29 08:07:00 +08:00
Moonchild
c65ca2ca58 Issue #618 - Remove context and heap-idle check
For checking if a module is in an error state and what the error is, it
shouldn't matter if we are currently GC-ing or not. So we don't need to check
for it, which removes the requirement to pass in the JS context (needed for
AssertHeapIsIdle's runtime check); this unblocks progress where otherwise we'd
have to figure out what the context is at the module level just to satisfy this
check.
2020-07-10 22:18:01 +08:00
Moonchild
b590ecea12 Issue #618 - Fix JSAPI additions to pass the JS context. 2020-07-10 22:17:55 +08:00
Moonchild
91a79c0ddc Issue #618 - Match JSAPI names with the changes in 9ca74147225eed305e28c7887f9b2251aeeb0f36
Ref: BZ 1388728
2020-07-10 22:17:52 +08:00
Moonchild
5838eded5f Issue #618 - Add APIs to query module record errors
Ref: BZ 1388728
2020-07-10 22:17:48 +08:00
wolfbeast
2996c783d8 Revert #1091 Remove unboxed object code phase 1 + extras.
This should be the last code backout for this. merging this branch
should get us back to the way we were (+ additional code changes for
later changes) as fasr as the unused unboxed code is concerned.
2020-02-27 07:34:57 +08:00
wolfbeast
cfed2447da Revert #1137 - Remove unboxed arrays
- accounting for removal of watch()/unwatch()
- updated for intermediate code changes.
2020-02-27 07:34:50 +08:00
Gaming4JC
c8d569d1b8 Bug 1331092 - Part 1: Add Symbol.asyncIterator.
Tag #1287
2019-12-18 09:16:06 +08:00
wolfbeast
c16e82c9b1 Issue #1302 - Add self-hosted implementation for string regex .matchAll
This resolves #1302.
2019-11-28 10:32:42 +08:00
wolfbeast
8148cf0001 Issue #1284 - Implement /s (dotAll) for regular expressions, v2.
Resolves #1284.
2019-11-22 10:52:02 +08:00
wolfbeast
cfc50f18c4 Fix a crash in IndexedDB. 2019-09-06 23:49:51 +08:00
Gaming4JC
98ebeef711 1283712 - Part 2: Add JSEXN_NOTE. 2019-07-22 19:49:45 +08:00
Gaming4JC
6072c7290b Make JSErrorNotes Single Threaded 2019-07-22 19:49:35 +08:00
Gaming4JC
c2bd1ca0bc 1283712 - Part 1: Add JSErrorBase, JSErrorNotes, JSErrorNotes::Note, and JSErrorReport.{notes,freeNotes}. 2019-07-22 19:49:32 +08:00
wolfbeast
ea2349157d Remove unboxed array context option and shell flag. 2019-06-19 21:34:25 +08:00
wolfbeast
3c6346afa9 Unhook Unboxed Objects option 2019-05-24 21:55:41 +08:00
wolfbeast
eb32b5d7e4 Pref the use of unboxed plain objects in JS and disable by default.
This should be all that's needed for #1017, but verification of
impact is definitely desired.
2019-03-23 06:44:08 +08:00
wolfbeast
becadd3588 Align instanceof with the final ES6 spec. 2019-02-16 00:28:03 +08:00
David Teller
7d0bef1093 Reduce number of allocations in AutoStopwatch
This patch fixes two related issues.
1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to
communicate with its callback during each compartment switch.
This vector was designed to allow its contents to be stack-allocated
but they turned out to be accidentally heap-allocated.

2. During each tick, the stopwatch fills a vector `recentGroups_`.
This vector always started with minimal capacity and had to grow
repeatedly as groups were added, causing repeated reallocations.
This patch preallocates `recentGroups_` to have the same capacity as the
previous tick. We expect that this should eventually reach a stable size
that closely matches the actual needs of the process.
2019-02-16 00:27:30 +08:00
wolfbeast
dce38e8d76 Revert "Reduce number of allocations in AutoStopwatch"
This reverts commit 3476c1d60ec29c5497123194acd7a9310b1023d2.
2019-02-16 00:27:29 +08:00
David Teller
059aeea416 Reduce number of allocations in AutoStopwatch
This patch fixes two related issues.
1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to
communicate with its callback during each compartment switch.
This vector was designed to allow its contents to be stack-allocated
but they turned out to be accidentally heap-allocated.

2. During each tick, the stopwatch fills a vector `recentGroups_`.
This vector always started with minimal capacity and had to grow
repeatedly as groups were added, causing repeated reallocations.
This patch preallocates `recentGroups_` to have the same capacity as the
previous tick. We expect that this should eventually reach a stable size
that closely matches the actual needs of the process.
2019-02-16 00:27:28 +08:00
adeshkp
aea50f182f Telemetry: Remove stubs and related code 2019-02-16 00:24:04 +08:00
wolfbeast
930cc1db3b Fix a longstanding IndexedDB correctness issue.
Standards Compliance fix, port of Bug 1492737
2019-02-16 00:18:35 +08:00
wolfbeast
8e9e42c7d8 Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
janekptacijarabaci
f8591643c5 JS - support for Array.prototype.values() 2019-02-15 23:39:48 +08:00
janekptacijarabaci
444483bf81 Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)
Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of
Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in
JSTRY_FOR_OF
Bug 1344753 - Update for-of stack depth in
ControlFlowGenerator::processWhileOrForInLoop

Issue #74
2019-02-15 23:39:29 +08:00
janekptacijarabaci
e7ee7caf1e Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScript
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2019-02-15 23:38:38 +08:00
janekptacijarabaci
105cbadae7 Use ordinary objects for Error prototypes 2019-02-15 23:38:17 +08:00
janekptacijarabaci
4cb956bb3b Close iterator after error in Promise.{all,race}
Issue #17
2019-02-15 23:37:49 +08:00
wolfbeast
537415eeb7 Make XDR decoding more robust. 2019-02-15 23:30:48 +08:00
wolfbeast
2029eff3f1 Re-enable asm.js caching 2019-02-15 23:30:23 +08:00
wolfbeast
97a0673483 Remove GCZeal: Base cleanup
UXP repo issue #8
2019-02-14 14:37:49 +08:00
wolfbeast
935b074787 Implement configuration pref for Generational Garbage Collection.
Pref: javascript.options.mem.gc_generational
This resolves #20
2019-02-14 14:28:26 +08:00
Roy Tam
dcd9973243 import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00