Commit graph

5,036 commits

Author SHA1 Message Date
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
Job Bautista
d163d08cb2 Issue #2083 - Part 2: Remove use of RegExpGuard.
Based on Mozilla bug 1345177.
There were more uses of RegExpGuard in js/src/builtin/RegExp.cpp not found in
 the original bug's patch.
2023-02-01 07:36:07 +08:00
Job Bautista
3796c7c1e1 Issue #2083 - Part 1: Make RegExpShared a GC thing.
Based on Mozilla bug 1345177.
Changes from the original bug's patch:

- We don't have JS::CurrentThreadIsHeapCollecting, so let's use
  trc->runtime()->isHeapCollecting() instead.
- Mozilla bug 1337117 renamed runtimeFromMainThread to
  runtimeFromActiveCooperatingThread for Firefox 54, so let's use the former
2023-02-01 07:35:50 +08:00
Moonchild
8bf892d728 [xpcom] remove incorrect assertion.
See https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2095#issuecomment-33796
2023-01-30 12:56:44 +08:00
Moonchild
d89f4e1454 No issue - bump default platform UA compatibility mode to 102.0 2023-01-30 12:56:18 +08:00
Moonchild
8f3badf882 Issue #1382 - Remove incorrect assertion.
Tag #2090 #2095
2023-01-30 12:56:00 +08:00
Martok
70279e1eb2 Issue #2093 - Trace HeapPtr<RegExpShared::groupsTemplate_> for GC move/compact events, regression from #2072 2023-01-26 11:41:33 +08:00
Job Bautista
8495231395 Issue #2091 - Parse \p{Extended_Pictographic} too.
This is essentially a follow up to Issue #1286. We already have
 UCHAR_EXTENDED_PICTOGRAPHIC in our in-tree ICU, so there's no reason to comment
 this case out.
2023-01-26 11:41:21 +08:00
Martok
ece0496985 Issue #2089 - Avoid copying/recreating iterator result, AsyncGeneratorRequest and GeneratorObject expression stacks
Based-on: m-c 1394682,1410283,1396499
2023-01-26 11:40:56 +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
0216108195 No issue - Throw error when resolving or rejecting promise returned by async function with testing function
Based-on: m-c 1418106
2023-01-26 11:39:31 +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
1230808583 No issue - Cleanup unused function exports to self-hosted global
Based-on: m-c 1325696
2023-01-26 11:38:19 +08:00
Martok
41c2b34542 No issue - Remove "code" from jsprototype.h macros
Based-on: m-c 1394084
2023-01-26 11:38:07 +08:00
Martok
7d2b83fafc No issue - reformat GlobalObject::skipDeselectedConstructor 2023-01-26 11:37:54 +08:00
Martok
2db0386e65 No issue - implement js::NativeDefineDataProperty helper 2023-01-26 11:37:43 +08:00
Moonchild
f080f2e978 [DOM] Make nsHTMLContentSerializer handle noscript depending on the scripting enabled state of the document. 2023-01-19 09:42:47 +08:00
Moonchild
7764640b0b [devtools] Improve Copy as cURL
Windows commonly fails to work because of --compressed, and its string
escaping needed improvement because of the complexities of argument
parsing in command windows.
2023-01-19 09:42:21 +08:00
Moonchild
d8756a58db [DOM] Add some null checks for PerformanceWorkers 2023-01-19 09:41:54 +08:00
Moonchild
549389d327 No issue - factor out some frame iterator helper functions. 2023-01-19 09:41:27 +08:00
Moonchild
4381425b26 [gtk widget] Use text/uri-list for file drag&drop. 2023-01-19 09:41:00 +08:00
Moonchild
525b4e1888 [network] Avoid queue manipulation inside a loop 2023-01-19 09:40:35 +08:00
Job Bautista
ee541a5330 Issue #80 - Re-unify some more missed sources in js/src 2023-01-13 13:29:05 +08:00
Moonchild
efeb0e3e97 Issue #2087 - Don't throw on lacking PresShell in SetFontInternal
In CanvasRenderingContext2D::SetFontInternal, we should not throw if
there is no PresShell due to (sandboxed/hidden) iframe use that has not
initialized its presentation yet at the time of property manipulation.
This removes the throwing of the error and just silently fails.

Resolves #2087
2023-01-10 07:42:08 +08:00
FranklinDM
2f7f622cd4 No issue - Fix invalid neq check on assert in RegExpParser 2023-01-10 07:41:54 +08:00
FranklinDM
56e636d8ec Issue #2084 - Part 2: Simplify logic in CSSParserImpl::LookupKeywordPrefixAware
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1259348
2023-01-10 07:41:39 +08:00
FranklinDM
db3ce13f28 Issue #2084 - Part 1: Remove CSSUnprefixingService.js and associated code
It's effectively dead code since it's been supplanted by built-in webkit-prefixed-CSS support (landed before fork point in Firefox 49).

Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1259348
2023-01-10 07:37:30 +08:00
Martok
845411a7ad Issue #2073 - m-c 1454149: Do not advance animated images which are not displayed 2023-01-10 07:31:40 +08:00
Martok
a6a420259c Issue #2073 - m-c 1546500: Avoid dispatching synchronous thread shutdown runnables 2023-01-10 07:31:26 +08:00
Martok
9a39001cc3 Issue #2073 - m-c 1651587: Make image::Image release efficient on main thread 2023-01-10 07:31:09 +08:00
Martok
03a4a17ccf Issue #2073 - m-c 1383404: make SourceBuffer::Compact more efficient (squashed)
The first part also means that Compact no longer needs the SurfaceCache lock (used to be via CreateChunk->CanHold),
which avoids potential deadlocks during shutdown that m-c 523950 would otherwise cause
2023-01-10 07:30:55 +08:00
Martok
e96122ede2 Issue #2073 - m-c 523950: Discard decoded frames of very large GIF animations (squashed)
Controlled by image.animated.decode-on-demand.threshold-kb, default 256MB

Includes squashed bugfixes/regressions:
 - m-c 1444537: Shutting down the decode pool should make animated decoders bail early
 - m-c 1628606: Make sure to mark the surface cache entry available before sending the frame complete notification
 - m-c 1502275: Skip recreating the decoder after redecode errors if an animated image is reset
 - m-c 1443232: Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable
2023-01-10 07:30:36 +08:00
Martok
eac8afce35 Issue #2073 - m-c 1343341: Infrastructure necessary to allow discarding of animated images (squashed)
Includes squashed changes of:
 - m-c 1317907: Refactor FrameAnimator::GetCompositedFrame to be a bit simpler
 - m-c 1351434: bugfix
 - m-c 686905: Enable the pref image.mem.animated.discardable to allow discarding of animated images
2023-01-10 07:29:50 +08:00
Martok
7d75c2717f Issue #2073 - m-c 1382683: Accelerate GIF decoding to SurfacePipe
1. Implement SurfacePipe::WritePixelBlocks for faster writing of pixels
2. Switch nsGIFDecoder2 to write pixels in blocks instead of individually
2023-01-10 07:29:36 +08:00
Job Bautista
5b438179ad Issue #2079 - Fix linking libxul on *nix when using a linker other than bfd.
Don't mark the .kPStaticModules section as relro for bfd, as the linkers on
 Windows and Mac don't do this anyway.
Add a section insert of .kPStaticModules to config/expandlibs_exec.py, which
 seems to be the primary cause of linking bustage on gold, lld, and mold.
2023-01-06 20:37:00 +08:00
Martok
86782b8f39 Issue #1382 - RegExpShared::groupsTemplate_ cannot be a GCPtr since RegExpShared is managed by C++ 2023-01-06 20:36:47 +08:00
Moonchild
e38f362d44 Issue #2075 - Part 5: Allow logical aliases in the property database. 2023-01-06 20:36:35 +08:00
Moonchild
1b22ef40f9 Issue #2075 - Part 4: Update tests
* Update reftests to use inset-*
* Update property database
* Update logical properties test
2023-01-06 20:36:22 +08:00
Moonchild
48087df576 Issue #2075 - Part 3: Regenerate devtools CSS database
Using `mach devtools-css-db`
2023-01-06 20:36:10 +08:00
Moonchild
07af4123d1 Issue #2075 - Part 2: Update devtools for inset-* 2023-01-06 20:35:53 +08:00
Moonchild
0c37c0db8f Issue #2075 - Part 1: Rename offset-* logical properties to inset-*
This adds aliases behind a pref with the old offset-* names
2023-01-06 20:35:40 +08:00
Job Bautista
507ed86ef5 Issue #80 - Fix deprot in js/src/irregexp.
Regression seems to have been introduced by PR #2060? This tree didn't fail
 building before we've reinstated unified building for js/src.
Found while building js/src de-unified.
2022-12-30 09:23:06 +08:00