summaryrefslogtreecommitdiffstats
path: root/js/src/vm
Commit message (Collapse)AuthorAgeLines
* [js] Remove pointless MakeMRegExpHoistable optimization.wolfbeast2020-03-18-6/+0
| | | | It's a lot of code with no measurable effect.
* Revert #1091 Remove unboxed object code phase 1 + extras.wolfbeast2020-02-23-5/+445
| | | | | | 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.
* Revert #1137 - Remove unboxed arrayswolfbeast2020-02-23-88/+1814
| | | | | - accounting for removal of watch()/unwatch() - updated for intermediate code changes.
* Revert #1142 - Remove unboxed objectswolfbeast2020-02-22-20/+1765
| | | | - accounting for removal of watch()/unwatch()
* Revert 1320408 part 15: Make addDataProperty staticwolfbeast2020-02-22-18/+18
|
* Issue #1322 - Part 1: Remove the DOM Promise guts.wolfbeast2019-12-19-28/+0
| | | | This removes all the parts guarded by SPIDERMONKEY_PROMISE
* Bug 1390082 - Implement AsyncGeneratorQueue with simpler array operations.Gaming4JC2019-12-17-10/+52
| | | | | | Tag #1287 Note: Without ReadableStream implementation
* Bug 1379525 - Part 1: Await on the value before yielding or returning inside ↵Gaming4JC2019-12-17-97/+88
| | | | | | async generator. Tag #1287
* Bug 1331092 - Part 7: Implement Async Generator yield*.Gaming4JC2019-12-17-29/+159
| | | | Tag #1287
* Bug 1331092 - Part 2: Implement Async Generator except yield*.Gaming4JC2019-12-17-2/+823
| | | | Tag #1287
* Bug 1317389: Change property attributes for generator and async functions to ↵Gaming4JC2019-12-17-12/+22
| | | | | | match ES2015/2017. Tag #1287
* Bug 1316098 - Optimize out result object allocation for await/return in ↵Gaming4JC2019-12-17-34/+11
| | | | | | async function. Tag #1287
* Bug 1343481 - Part 4: Add Add GeneratorObject.{isAfterYield,isAfterAwait}.Gaming4JC2019-12-17-0/+38
| | | | Tag #1287
* Bug 1343481 - Part 3: Add JSOP_AWAIT and rename {yieldIndex,yieldOffset} to ↵Gaming4JC2019-12-17-34/+47
| | | | | | {yieldAndAwaitIndex,yieldAndAwaitOffset}. Tag #1287
* Bug 1343481 - Part 2: Stop using StarGegerator for async function.Gaming4JC2019-12-17-3/+3
| | | | Tag #1287
* Bug 1343481 - Part 1: Remove {JSFunction,JSScript,LazyScript}.isGenerator() ↵Gaming4JC2019-12-17-13/+33
| | | | | | method. Tag #1287
* Bug 1336705 - Part 2: Add self-hosting intrinsics for resolving/rejecting ↵Gaming4JC2019-12-17-0/+108
| | | | | | Promises and adding reactions. Tag #1287
* Issue #1302 - Add self-hosted implementation for string regex .matchAllwolfbeast2019-11-26-56/+55
| | | | This resolves #1302.
* Issue #1284 - Implement /s (dotAll) for regular expressions, v2.wolfbeast2019-11-18-4/+10
| | | | Resolves #1284.
* Revert "Issue #1284 - Implement /s (dotAll) for regular expressions."wolfbeast2019-11-18-5/+2
| | | | This reverts commit f31b04a303607cd82757e7c4f60bb536658c8a30.
* Issue #1284 - Implement /s (dotAll) for regular expressions.wolfbeast2019-11-18-2/+5
| | | | Resolves #1284.
* Issue #1283 - Implement Promise.prototype.finally()André Bargull2019-11-12-0/+19
| | | | This resolves #1283.
* Merge branch 'master' into js-moduleswolfbeast2019-11-10-4746/+1280
|\ | | | | | | | | # Conflicts: # modules/libpref/init/all.js
| * Merge pull request #1262 from athenian200/solaris-workMoonchild2019-11-02-0/+12
| |\ | | | | | | Support Modern Solaris
| | * MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up.athenian2002019-10-21-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compared with what Pale Moon had for Solaris originally, this is mostly the same zero point I started patching from, but I've made the following changes here after reviewing all this initial code I never looked at closely before. 1. In package-manifest.in for both Basilisk and Pale Moon, I've made the SPARC code for libfreebl not interefere with the x86 code, use the proper build flags, and also updated it to allow a SPARC64 build which is more likely to be used than the 32-bit SPARC code we had there. 2. See Mozilla bug #832272 and the old rules.mk patch from around Firefox 30 in oracle/solaris-userland. I believe they screwed up NSINSTALL on Solaris when they were trying to streamline the NSS buildsystem, because they started having unexplained issues with it around that time after Firefox 22 that they never properly resolved until Mozilla began building NSS with gyp files. I'm actually not even sure how relevant the thing they broke actually is to Solaris at this point, bug 665509 is so old it predates Firefox itself and goes back to the Mozilla suite days. I believe $(INSTALL) -t was wrong, and they meant $(NSINSTALL) -t because that makes more sense and is closer to what was there originally. It's what they have for WINNT, and it's possible a fix more like that could serve for Solaris as well. Alternatively, we could get rid of all these half-broken Makefiles and start building NSS with gyp files like Mozilla did. 3. I've completely cut out support for the Sun compiler and taken into account the reality that everyone builds Firefox (and therefore its forks) with GCC now on Solaris. This alone helped clean up a lot of the uglier parts of the code. 4. I've updated all remaining SOLARIS build flags to the newer XP_SOLARIS, because the SOLARIS flag is no longer set when building Solaris. 5. I've confirmed the workaround in gtxFontconfigFonts.cpp is no longer necessary. The Solaris people got impatient about implementing a half-baked patch for a fontconfig feature that wasn't ready yet back in 2009, and somehow convinced Mozilla to patch their software to work around it when really they should have just fixed or removed their broken fontconfig patch. The feature they wanted has since been implemented properly, and no version of Solaris still uses the broken patch that required this fix. If anyone had ever properly audited this code, it would have been removed a long time ago.
| * | Issue #1257 - Part 2: Remove watch/unwatch and JS watchpoint class.wolfbeast2019-10-27-79/+60
| | |
| * | Issue #1257 - Part1: Remove watch class-hook and proxy trap.wolfbeast2019-10-26-3/+0
| |/
| * Use the correct group for JIT constraints.wolfbeast2019-09-05-7/+136
| | | | | | | | | | | | | | This fixes a rare crash/CTD in JS. This adds information about the constraints to a new RAII class so we can finish all constraints at the end. Based on changes in BZ 1568397
| * 1339395 - Part 3: Add BytecodeEmitter support for object rest and spread ↵Gaming4JC2019-07-18-0/+2
| | | | | | | | properties.
| * 1344477 - Part 2: Optimize Array.prototype.splice with JSOP_NORVCALL.Gaming4JC2019-07-18-1/+1
| |
| * 1344477 - Part 1: Add JSOP_CALL_IGNORES_RV for function call that ignores ↵Gaming4JC2019-07-18-4/+32
| | | | | | | | return value.
| * 1216630 - Print class source when calling toString on the constructor.Gaming4JC2019-07-18-5/+20
| | | | | | | | | | | | | | | | | | | | This is accomplished in the following ways. LazyScripts and JSScripts now have 4 offsets: - Source begin and end for the actual source. This is used for lazy parsing. - toString begin and end for toString. Some kinds of functions, like async, only have a different begin offset. Class constructors have different offsets for both begin and end. For syntactically present (i.e. non-default) constructors, the class source span is remembered directly on the LazyScript or JSScript. The toString implementation then splices out the substring directly. For default constructors, a new SRC_CLASS SrcNote type is added. It's binary and has as its arguments the begin and end offsets of the class expression or statement. MakeDefaultConstructor reads the note and overrides the cloned self-hosted function's source object. This is probably the least intrusive way to accomplish this.
| * Fix a thread assertion in NewCopiedArrayTryUseGroupGaming4JC2019-07-18-2/+2
| |
| * 1336783 - Part 1: Rework on reserved word and remove TokenStream::KeywordIsName.Gaming4JC2019-07-18-68/+32
| |
| * 1283712 - Part 10: Support notes in getLastWarning shell-only testing function.Gaming4JC2019-07-18-0/+1
| |
| * 1332245 - Move nsScriptError from js/xpconnect to dom/bindings.Gaming4JC2019-07-18-0/+215
| |
| * 1283712 - Part 5: Support notes in Debugger.Gaming4JC2019-07-18-0/+36
| |
| * 1339137 - Don't do Annex B lexical function behavior when redeclaring a ↵Gaming4JC2019-07-18-4/+15
| | | | | | | | parameter name in a function with parameter expressions.
| * 1320408 - Part 26: Remove Shape::set declaration.Gaming4JC2019-07-18-3/+0
| |
| * 1320408 - Part 25: Change NativeObject::toDictionaryMode to static method.Gaming4JC2019-07-18-19/+17
| |
| * 1320408 - Part 24: Change ↵Gaming4JC2019-07-18-33/+34
| | | | | | | | NativeObject::{fillInAfterSwap,replaceWithNewEquivalentShape,generateOwnShape,shadowingShapeChange} to static method.
| * 1320408 - Part 23: Change ↵Gaming4JC2019-07-18-19/+21
| | | | | | | | RegExpObject::{getShared,createShared,dumpBytecode} to static method.
| * 1320408 - Part 22: Remove JSContext* parameter from ProxyObject::renew and ↵Gaming4JC2019-07-18-1/+1
| | | | | | | | Wrapper::Renew.
| * 1320408 - Part 19: Remove JSContext* parameter from ↵Gaming4JC2019-07-18-1/+1
| | | | | | | | ModuleObject::fixEnvironmentsAfterCompartmentMerge.
| * 1320408 - Part 18: Change StringObject::init to static method.Gaming4JC2019-07-18-11/+9
| |
| * 1320408 - Part 17: Change NativeObject::clearFlag to static method.Gaming4JC2019-07-18-9/+8
| |
| * 1320408 - Part 16: Change NativeObject::removeProperty to static method.Gaming4JC2019-07-18-29/+28
| |
| * 1320408 - Part 15: Change NativeObject::addDataProperty to static method.Gaming4JC2019-07-18-18/+18
| |
| * 1320408 - Part 14: Change some GlobalObject methods to static method.Gaming4JC2019-07-18-157/+170
| |
| * 1320408 - Part 13: Change DebugEnvironmentProxy::getMaybeSentinelValue to ↵Gaming4JC2019-07-18-6/+8
| | | | | | | | static method.