Commit graph

5,078 commits

Author SHA1 Message Date
Martok
87eaaee953 Issue #2046 - Move a bunch of functions in builtin/intl/CommonFunctions.js into more-specific files, where those functions are only used in a single more-specific file 2023-02-21 08:20:01 +08:00
Martok
cf2e2ed906 Issue #2046 - Move builtin/Intl.js (which now contains only shared functionality) to builtin/intl/CommonFunctions.js 2023-02-21 08:19:43 +08:00
Martok
45720521cf Issue #2046 - Move Intl.Collator self-hosted code to a new builtin/intl/Collator.js file 2023-02-21 08:19:25 +08:00
Martok
a56b9e8324 Issue #2046 - Move Intl.NumberFormat self-hosted code to a new builtin/intl/NumberFormat.js file 2023-02-21 08:19:09 +08:00
Martok
38284ba8b4 Issue #2046 - Move Intl.DateTimeFormat self-hosted code to a new builtin/intl/DateTimeFormat.js file 2023-02-21 08:18:52 +08:00
Martok
e55cdd19a0 Issue #2046 - Move Intl.PluralRules self-hosted code to a new builtin/intl/PluralRules.js file 2023-02-21 08:18:37 +08:00
Martok
ae0eddc165 Issue #2046 - Move Intl.RelativeTimeFormat self-hosted code to a new builtin/intl/RelativeTimeFormat.js file 2023-02-21 08:18:19 +08:00
Martok
7f2b67f7dd Issue #2046 - Move the self-hosting of non-constructor properties of Intl to a new builtin/intl/IntlObject.js file 2023-02-21 08:18:01 +08:00
Martok
f8e3f81197 Issue #2046 - Move various generated files from builtin/Intl* to builtin/intl/*, and add "Generated" to their names for clarity 2023-02-21 08:17:46 +08:00
Martok
5574b06ff5 Issue #2046 - Move builtin/Intl.* to builtin/intl/IntlObject.* 2023-02-21 08:17:20 +08:00
Martok
5ad62567e0 Issue #2046 - Trim builtin/Intl.*'s #include set down to what is required for Intl itself 2023-02-21 08:16:55 +08:00
Martok
c7dab6c035 Issue #2046 - Move Intl.RelativeTimeFormat functionality into builtin/intl/RelativeTimeFormat.* 2023-02-21 08:16:37 +08:00
Martok
ed316832bf Issue #2046 - Move Intl.PluralRules functionality into builtin/intl/PluralRules.* 2023-02-21 08:16:19 +08:00
Martok
c981fb13ea Issue #2046 - Move Intl.DateTimeFormat functionality into builtin/intl/DateTimeFormat.* 2023-02-21 08:16:04 +08:00
Martok
ce98604d2e Issue #2046 - Move SharedIntlData into its own builtin/intl/SharedIntlData.* files so the world doesn't have to import all shared Intl functionality. 2023-02-21 08:15:47 +08:00
Martok
53c2f58c5b Issue #2046 - Move Intl.Collator functionality into builtin/intl/Collator.* 2023-02-21 08:15:31 +08:00
Martok
6da7d528d6 Issue #2046 - Move NewUNumberFormatForPluralRules next to its only use 2023-02-21 08:15:13 +08:00
Martok
e7565ff1ae Issue #2046 - Move Intl.NumberFormat functionality into builtin/intl/NumberFormat.* 2023-02-21 08:14:56 +08:00
Martok
eee13d2653 Issue #2046 - Create helper method to call ICU string conversion methods
Based-on: m-c 1333844
2023-02-21 08:14:41 +08:00
Martok
50e3c1f5e6 Issue #2046 - Move functionality used in the implementation of multiple Intl.* constructors into builtin/intl/CommonFunctions.* 2023-02-21 08:14:25 +08:00
Martok
0172619642 Issue #2046 - Move ScopedICUObject into builtin/intl/ScopedICUObject.h 2023-02-21 08:14:10 +08:00
Moonchild
cdda874cff [NSS] Update NSS to pick up fixes. 2023-02-20 12:01:55 +08:00
Moonchild
bc50a7d3c6 [DOM] Check whether module load request was already cancelled when a load fails 2023-02-20 12:01:36 +08:00
Moonchild
bca689b483 [widget] Properly test for and handle errors in target-surface creation and mapping. 2023-02-20 12:01:04 +08:00
Job Bautista
cc6b0f11e7 Issue #2107 - Clean up caret when destroying editor.
Editor changes caret visibility during drag and drop. But when destroying
editor, we don't restore caret state. So we should restore it when destroying
editor.

Co-authored-by: Makoto Kato <m_kato@ga2.so-net.ne.jp>
2023-02-20 11:11:02 +08:00
Moonchild
1644bf94f0 No issue - Accept also video/vp8 as MIME type 2023-02-08 16:57:28 +08:00
FranklinDM
4c9665a4ae Issue #2104 - Part 2: Indicate if a label was cropped via the "_is_cropped" attribute 2023-02-08 16:57:11 +08:00
FranklinDM
60c344a56b Issue #2104 - Part 1: Implement "clip" attribute value for XUL string cropping
This implements the "clip" attribute value for the "crop" attribute found in XUL label elements. It functions similarly to having the text-overflow property set to an empty string or "". This shouldn't break previously established behavior as it only adds a new value to be checked.

The behavior of the "none" attribute value in the documentation (https://udn.realityripple.com/docs/Archive/Mozilla/XUL/Attribute/crop) is incorrect. The "none" attribute value literally means "don't crop anything" if you'd check the code and is also equivalent to not setting the "crop" attribute at all. This has always been the case since Firefox 2 (earliest version I checked) and apparently, this section of the documentation was copied verbatim from XULPlanet without even checking if it's correct.
2023-02-08 16:56:51 +08:00
Moonchild
8d3f23ed00 Issue #2103 - Fix typo in RegExp Parser
This corrects the typo where the left-hand character would determine if
the right-hand character would be added or not.

Resolves #2103
2023-02-02 21:43:39 +08:00
Martok
f75e9d9441 Issue #2089 - Implement the Promise.any combinator
Based-on: m-c 1568903/9,1560300
2023-02-02 09:32:17 +08:00
Martok
9fc50a9920 Issue #2089 - Rename shared Promise combinator functions, with helpers for element functions
Based-on: m-c 1568903/{5-8}
2023-02-02 09:31:56 +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
209c8e06a2 Issue #2089 - Move ErrorObject parts from jsexn.cpp to ErrorObject.cpp
Based-on: m-c 1568903/2
2023-02-02 09:31:16 +08:00
Martok
92906d4da5 Issue #2089 - Add cache for Promise property lookups
Based-on: m-c 1475678/11
2023-02-02 09:31:00 +08:00
Job Bautista
10ef0da5a0 Issue #2099 - Remove unnecessary cast in GeneratorObject::suspend's do loop.
This resolves build bustage with --enable-debug.
2023-02-01 07:42:40 +08:00
Job Bautista
22dc363c3a Issue #2083 - Follow-up: RegExpShared::source should be a GCPtr.
A hangover from before RegExpShared was a GC thing, as noted by m-c 1399928.
2023-02-01 07:42:23 +08:00
Martok
a215929a31 Issue #2089 - Report unhandled rejection for optimized away promise
Based-on: m-c 1498775
2023-02-01 07:42:07 +08:00
Martok
078daa705a Issue #2089 - Further runtime perf improvements for PromiseState
- Reduce slot size of PromiseReactionRecord to fit into OBJECT8 alloc kind
- Use the Call() helper from Interpreter.h to reduce code duplication
- Clear the incumbent global slot when it's no longer used

Based-on: m-c 1475678/{12-14}
2023-02-01 07:40:48 +08:00
Martok
5ff7a51da0 Issue #2089 - Create a shared helper for PerformPromiseRace, PerformPromiseAll and PerformPromiseAllSettled
Replace the previous non-CommonPerformPromiseAllRace port with the unified one

Based-on: m-c 1475678/10,1539694
2023-02-01 07:40:29 +08:00
Martok
c0b1bf7e1e Issue #2089 - Add a PromiseCapability struct, directly initialize dense elements in PerformPromiseAll using NewbornArrayPush
Based-on: m-c 1475678/{8,9}
2023-02-01 07:40:02 +08:00
Martok
1fd51e14f3 Issue #2089 - Improve Runtime perf of Promises
- reduce typecasting
- reduce rooting already rooted values
- directly handle unwrapped promises

Based-on: m-c 1475678/{1-7}
2023-02-01 07:39:42 +08:00
Martok
ee395231dd Issue #2089 - Don't use BlockOnPromise fast path with non-default resolving functions, combine default resolving functions flags
Based-on: m-c 1474348
2023-02-01 07:39:25 +08:00
Martok
9744b0c2bc Issue #2089 - Optimize Promise.then and Promise.all/race with default resolving functions
Based-on: m-c 1401508,1412200,1473970/{1-4}
2023-02-01 07:39:01 +08:00
Martok
55eacd43a4 Issue #2089 - Turn AsyncGeneratorResumeNext recursion into iteration to avoid stack overflow
Based-on: m-c 1416809
2023-02-01 07:38:35 +08:00
Martok
6e2201d3a8 Issue #2089 - Only create result Promises in Promise#then and Promise#catch if it's used or the creation is otherwise observable
Based-on: m-c 1342070
2023-02-01 07:38:16 +08:00
Martok
ed8af362be Issue #2089 - Shrink Promise instances from 8 to 4 slots by moving debug information to an external object
Based-on: m-c 1342050
2023-02-01 07:37:53 +08:00
Job Bautista
233802c9ab Revert "Issue #1382 - RegExpShared::groupsTemplate_ cannot be a GCPtr since RegExpShared is managed by C++"
This workaround has been obsoleted by the work on Issue #2083.
This reverts commit bbd743608685ec77ebebe480761118db8a988253.
2023-02-01 07:37:24 +08:00
Job Bautista
b7e4530861 Issue #2083 - Part 5: Fix memory leak in RegExpObject.
Based on Mozilla bug 1345177.
2023-02-01 07:37:02 +08:00
Job Bautista
9824659d3c Issue #2083 - Part 4: Give RegExpShared a finalizer.
Based on Mozilla bug 1345177.
2023-02-01 07:36:42 +08:00
Job Bautista
2ac60a27c7 Issue #2083 - Part 3: Fix RegExpShared rooting hazards now it's a GC thing.
Based on Mozilla bug 1345177.
Changes from the original bug's patch:

- The original patch didn't have a dotAll for a call to irregexp::ParsePattern,
  so let's make our dotAll a member of the MutableHandleRegExpShared re.
- Make RegExpShared::initializeNamedCaptures, introduced in Issue #1285, static.
  This resolves a build bustage where static RegExpShared::compile was trying to
  use a member function.
2023-02-01 07:36:25 +08:00