summaryrefslogtreecommitdiff
path: root/js/src/vm
Commit message (Collapse)AuthorAge
...
* | Avoid TLS lookups when checking if zones need to be marked for GC.Moonchild2023-06-27
| | | | | | | | | | | | This converts the fromPointer() calls to an object cast to (hopefully) avoid the GC crashes. Logic is reversed from MustSkipMarking to ShouldMark with appropriate renames.
* | Simplify incremental GC sweepingMoonchild2023-06-27
|/ | | | | | Splitting several parts of `SweepPhase` into constituent parts to separate out sweeping code from code that handles yielding to the mutator and resuming.
* Issue #2257 - Remove rematerialized frames after bailouts and exceptions.Moonchild2023-06-01
| | | | | This ensures that rematerialized frames used by the devtools debugger are properly removed so that no stale data is used during bailouts.
* Issue #2246 - Implement Array find from last.Job Bautista2023-05-17
| | | | Based on the implementation from Mozilla bug 1704385.
* Issue #2241 - Part 1: Move {js::,JS_}{{Strictly,Loosely}Equal,SameValue} ↵Job Bautista2023-05-12
| | | | | | | | | into their own header and implementation files Backported from Mozilla bug 1516742. The .from* methods are going to depend on SameValueZero, which needs to be visible to /dom. This patch provides the foundation for that.
* Issue #2236 - Fix import.meta module error in lambdas by moving parseGoal() ↵Brian Smith2023-05-08
| | | | | | | into SharedContext. Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1604792 Also remove ParseGoal being passed through Parser introduced in #1691 Part 2.
* Issue #2142 - Track isFieldInitializer on JSScript instead of ScopeMartok2023-05-01
| | | | | | | | | | | | Introduce a FunctionSyntaxKind for FieldInitializer since special rules (around `arguments`) apply. At the same time we can move the flag from the scope to the JSScript. This is similar to how derived constructors are handled and makes the initWithEnclosingScope code closer to initWithEnclosingContext. This version is a bit more complex than Mozilla's due to different storage of bit flags on JSScript. Based-on: m-c 1636800
* Issue #2142 - Parse and process static class fieldsMartok2023-05-01
| | | | Based-on: m-c 1535804/{6,7}
* Issue #2142 - Pass through arguments in synthesized constructors for derived ↵Martok2023-05-01
| | | | | | classes Based-on: m-c 1552022
* Issue #2142 - Fix several scoping issues in field initializersMartok2023-05-01
| | | | Based-on: m-c 1540789, 1547130, 1547467
* Issue #2142 - Restrict contents of direct eval in fieldsMartok2023-05-01
| | | | Based-on: m-c 1542406
* Issue #2142 - Handle fields in derived classesMartok2023-05-01
| | | | | | * Don't name field initializer lambdas Based-on: m-c 1534721, 1551454, 1542448
* Issue #2142 - Implement syntax for public/private fields and computed field ↵Martok2023-05-01
| | | | | | | | | names This state still has the initializers scoped on .initializers local variable, which will be changed later. Based-on: m-c 1499448, 1530084, 1530832, 1529448 (partial), 1532921, 1528039, 1528038, 1535166, 1550628, 1535166, 1550628, 1541641, 1547133, 1540787, 1535804/9
* Issue #2142 - Change InitPropertyOperation to accept a PropertyName directy ↵Martok2023-04-30
| | | | | | and use DefineDataProperty Based-on: m-c 1413907, 1547129
* Issue #1285 - Follow-up: Correctly handle follow-up compilations of RegExp ↵Martok2023-04-30
| | | | with named capturing groups
* Issue #2213 - Follow-up: Fix derieved Generator prototypes after previous changeMartok2023-04-30
|
* Issue #1691 - Part 7f: Split up compile and execute so we can use ClassicScript.Brian Smith2023-04-27
| | | | | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=1342012 Refactor nsJSUtils::ExecutionContext to separate compilation and execution steps and allow extraction of compiled JSScript. https://bugzilla.mozilla.org/show_bug.cgi?id=1366773 Move buffer argument from JS::StartIncrementalEncoding to JS::FinishIncrementalEncoding. (cherry picked from commit d4b520b08b958e116dfeeffdc61f3425610d1ce9)
* Issue #1691 - Part 7e: Dependencies for required to finish part 7d.Brian Smith2023-04-27
| | | | | | | | | | | | | | | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=1331662 Reimplement EvaluateString using the ExecutionContext class. https://bugzilla.mozilla.org/show_bug.cgi?id=1316078 Extract redudant code into StartOffThreadParseTask. Use an ExclusiveContext instead of a JSContext in XDR functions. Add a script decoder as a valid off-main-thread parse-task. https://bugzilla.mozilla.org/show_bug.cgi?id=900784 Add nsJSUtils functions for encoding and decoding the bytecode. https://bugzilla.mozilla.org/show_bug.cgi?id=1316081 Add XDRIncrementalEncoder to replace delazified LazyScript in the encoded XDR buffer. Add an XDRIncrementalEncoder instance on the ScriptSource. Expose a new JSAPI to incrementally encode bytecode when it is generated. https://bugzilla.mozilla.org/show_bug.cgi?id=1334091 XDR function use the sourceObject instead of the enclosingScript as argument. (cherry picked from commit d6de9a669f4b2f5115670bd771cd53d7cfb3956a)
* Issue #1691 - Part 6a: Support private values which contain pointers to ↵Brian Smith2023-04-27
| | | | | | | | cycle-collected C++ objects https://bugzilla.mozilla.org/show_bug.cgi?id=1342012 (cherry picked from commit 1286cca73d58332ba0becd0011f747713b8acfac)
* Issue #1691 - Part 4: Finish implementing call import.Brian Smith2023-04-27
| | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=1499140 (cherry picked from commit 7bf7d64887944b127a72090dd62eb57f67c5089d)
* Issue #1691 - Part 3: Finish implementing import meta.Brian Smith2023-04-27
| | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=1427610 (cherry picked from commit a8625238ac846fb7eb103646ddb8634a5860f067)
* Issue #1691 - Part 2: Implement call import and import meta in the parser.Brian Smith2023-04-27
| | | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=1427610 https://bugzilla.mozilla.org/show_bug.cgi?id=1484948 (cherry picked from commit 6be083187f49e444de1bb116bb5930b20125190b)
* Issue #1691 - Part 1: Provide a way of associating a private value with a scriptBrian Smith2023-04-27
| | | | | | | | or module. This is a prerequisite for dynamic import (cherry picked from commit 2e2972647ee29340df51a804f05e40fc1da2c89b)
* No issue - Correct handling of async (arrow) functions declared inside ↵Martok2023-04-23
| | | | | | | | constructors Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1462353, but since we still support legacy generators, this only corrects the handling and leaves the newTarget plumbing intact.
* Issue #2155 - Follow-up: Reorder super-property evaluation order per latest ↵Martok2023-04-03
| | | | | | | | | spec change Fix regression from difference between Interpreter (old) and ElemOpEmitter (new). We don't have any Ion/IC support for these ops. Based-on: m-c 1472211
* Issue #2166 - Part 1: Use alignas/alignof for public ↵FranklinDM2023-03-17
| | | | | | | | JS::ProfilingFrameIterator's internal storage ... of a private wasm or JIT profiling frame iterator. Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1338374
* Issue #2148 - Discard RegExpShared data tables when discarding regexp JIT code.Job Bautista2023-03-15
| | | | | | Based on Mozilla bug 1378736's part 2. Should fix the double-free. Follow-up for #2083
* Issue #2148 - Don't null out RegExpObject -> RegExpShared pointer on GC.Job Bautista2023-03-15
| | | | | Follow-up for issue #2083. Taken from Mozilla bug 1378736.
* No issue - Refactor FindErrorInstanceOrPrototypeMoonchild2023-02-21
| | | | | | The logic here wasn't very transparent or easy to follow. Doing a positive check to set the result instead of defaulting to it also potentially prevents issues.
* Issue #2046 - Move builtin/Intl.* to builtin/intl/IntlObject.*Martok2023-02-16
|
* Issue #2046 - Move Intl.RelativeTimeFormat functionality into ↵Martok2023-02-16
| | | | builtin/intl/RelativeTimeFormat.*
* Issue #2046 - Move Intl.PluralRules functionality into ↵Martok2023-02-16
| | | | builtin/intl/PluralRules.*
* Issue #2046 - Move Intl.DateTimeFormat functionality into ↵Martok2023-02-16
| | | | builtin/intl/DateTimeFormat.*
* Issue #2046 - Move SharedIntlData into its own builtin/intl/SharedIntlData.* ↵Martok2023-02-15
| | | | files so the world doesn't have to import all shared Intl functionality.
* Issue #2046 - Move Intl.Collator functionality into builtin/intl/Collator.*Martok2023-02-15
|
* Issue #2046 - Move Intl.NumberFormat functionality into ↵Martok2023-02-15
| | | | builtin/intl/NumberFormat.*
* Issue #2089 - Implement the Promise.any combinatorMartok2023-02-01
| | | | Based-on: m-c 1568903/9,1560300
* Issue #2089 - Implement AggregateErrorMartok2023-02-01
| | | | Based-on: m-c 1568903/4,1641355(partial),1652148,1643397
* Issue #2089 - Move ErrorObject parts from jsexn.cpp to ErrorObject.cppMartok2023-02-01
| | | | Based-on: m-c 1568903/2
* Issue #2099 - Remove unnecessary cast in GeneratorObject::suspend's do loop.Job Bautista2023-01-31
| | | | This resolves build bustage with --enable-debug.
* Merge pull request 'Promises pt. 2: Optimization and Unification' (#2096) ↵Moonchild2023-01-31
|\ | | | | | | | | | | from martok/UXP-contrib:mr/prom-async-pt2 into master Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2096
| * Issue #2089 - Add a PromiseCapability struct, directly initialize dense ↵Martok2023-01-26
| | | | | | | | | | | | elements in PerformPromiseAll using NewbornArrayPush Based-on: m-c 1475678/{8,9}
| * Issue #2089 - Improve Runtime perf of PromisesMartok2023-01-26
| | | | | | | | | | | | | | | | - reduce typecasting - reduce rooting already rooted values - directly handle unwrapped promises Based-on: m-c 1475678/{1-7}
| * Issue #2089 - Optimize Promise.then and Promise.all/race with default ↵Martok2023-01-26
| | | | | | | | | | | | resolving functions Based-on: m-c 1401508,1412200,1473970/{1-4}
* | Issue #2083 - Follow-up: RegExpShared::source should be a GCPtr.Job Bautista2023-01-28
| | | | | | | | A hangover from before RegExpShared was a GC thing, as noted by m-c 1399928.
* | PR #2090 - Follow-up: Remove invalid MOZ_ASSERT in js::NativeDefineDataPropertyJob Bautista2023-01-27
| | | | | | | | We don't have isHelperThreadContext, and this is breaking debug builds.
* | Revert "Issue #1382 - RegExpShared::groupsTemplate_ cannot be a GCPtr since ↵Job Bautista2023-01-26
| | | | | | | | | | | | | | RegExpShared is managed by C++" This workaround has been obsoleted by the work on Issue #2083. This reverts commit bbd743608685ec77ebebe480761118db8a988253.
* | Issue #2083 - Part 5: Fix memory leak in RegExpObject.Job Bautista2023-01-26
| | | | | | | | Based on Mozilla bug 1345177.
* | Issue #2083 - Part 4: Give RegExpShared a finalizer.Job Bautista2023-01-26
| | | | | | | | Based on Mozilla bug 1345177.
* | Issue #2083 - Part 3: Fix RegExpShared rooting hazards now it's a GC thing.Job Bautista2023-01-26
| | | | | | | | | | | | | | | | | | | | | | 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.