summaryrefslogtreecommitdiffstats
path: root/js/src/builtin
Commit message (Collapse)AuthorAgeLines
* Issue #1639 - Implement object.fromEntries()Moonchild2020-09-06-0/+19
| | | | | Adds a self-hosted implementation of this map->object conversion. This resolves #1639.
* Issue #618 - Align error handling for module scripts with the spec - Debug ↵Gaming4JC2020-08-30-1/+2
| | | | | | | | follow up MODULE_STATUS_ERRORED is no more. Replacing with newer API. Ref: BZ 1420420
* Issue #618 - Lazily initialise module binding maps - Debug follow upGaming4JC2020-08-30-1/+1
| | | | | | The added debug assertion does not work due to missing API. They were added in BZ 1337491, 1395366, and others, but were primarily used for multi-threading. This uses our existing non-multithreaded syntax instead, resolving a `no member named` build error.
* Issue #618 - Lazily initialise module binding mapsMoonchild2020-08-30-27/+35
| | | | | | | Make it so they are not allocated on a background thread in a different zone to the final module. Ref: BZ 1372258
* Issue #618 - Use a single slot for the module's environment object.Moonchild2020-08-30-35/+29
| | | | | | | | | | | | | | | | | | | | According to the spec this isn't created until the module is instantiated, but we create it when we compile the module. We stored this previously in InitialEnvironmentSlot and copied it to EnvironmentSlot when it was supposed to be created, but we can just store it in the latter slot straight away and check the module's status and return null if it shouldn't exist yet. This reduces the number of slots needed on a moduleObject to 17. Re: BZ 1420412 Part 1 We can't implement the second part to further reduce our number of slots, because it relies on SetProxyReservedSlot which in turn relies on rearchitecturing JS proxies to make reserved slots dynamic. That's a rabbit hole we really don't want to fall into. So, we'll end up being a bit slower because it can't be in-line allocated with having more than 16 slots, but so be it. I sincerely doubt it will make any practical difference.
* Issue #618 - Align error handling for module scripts with the spec (again)Moonchild2020-08-30-179/+184
| | | | | | | | 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
* Issue #618 - Fix typo and remove old function declarations.Moonchild2020-07-10-3/+1
|
* Issue #618 - Report source position information (line/column)Moonchild2020-07-10-34/+110
| | | | | | Report source position information for module export resolution failures. Ref: BZ 1362098
* Issue #618 - Align module instantiation/errors with the updated spec.Moonchild2020-07-10-155/+514
| | | | | Store and re-throw module instantiation and evaluation errors. Ref: BZ 1374239, 1394492
* Issue #1465 - Implement optional catch binding.wolfbeast2020-04-14-3/+11
|
* Revert #1137 - Remove unboxed arrayswolfbeast2020-04-14-1/+1
| | | | | - accounting for removal of watch()/unwatch() - updated for intermediate code changes.
* Issue #1362 - Revert "Update js/src/builtin/TestingFunctions.cpp forwolfbeast2020-01-19-3/+3
| | | | | | regex lookbehind changes" This reverts commit e79607a7a694dc2d48d65697b48138fa585145c9.
* Issue #1322 - Part 1: Remove the DOM Promise guts.wolfbeast2019-12-19-53/+0
| | | | This removes all the parts guarded by SPIDERMONKEY_PROMISE
* Bug 1379525 - Part 2: Properly handle rejection in async-from-sync iteration.Gaming4JC2019-12-17-1/+5
| | | | Tag #1287
* Bug 1379525 - Part 1: Await on the value before yielding or returning inside ↵Gaming4JC2019-12-17-152/+235
| | | | | | async generator. Tag #1287
* Bug 1355399 - Switch property retrieval in Async-from-Sync Iterator ↵Gaming4JC2019-12-17-5/+5
| | | | | | prototype methods. Tag #1287
* Bug 1331092 - Part 7: Implement Async Generator yield*.Gaming4JC2019-12-17-0/+162
| | | | Tag #1287
* Bug 1331092 - Part 2: Implement Async Generator except yield*.Gaming4JC2019-12-17-2/+251
| | | | Tag #1287
* Bug 1331092 - Part 2: Implement Async Generator except yield*.Gaming4JC2019-12-17-0/+24
| | | | Tag #1287
* Bug 1343481 - Part 7: Add BytecodeEmitter::emitDotGenerator and make ↵Gaming4JC2019-12-17-6/+6
| | | | | | yield/await nodes unary. Tag #1287
* Bug 1343481 - Part 6: Add native functions wrapper for GetInternalError and ↵Gaming4JC2019-12-17-4/+2
| | | | | | GetTypeError. Tag #1287
* Bug 1343481 - Part 5: Rename AsyncFunction-related names in Promise.cpp to ↵Gaming4JC2019-12-17-18/+18
| | | | | | explicitly say Async Function. Tag #1287
* Bug 1343481 - Part 1: Remove {JSFunction,JSScript,LazyScript}.isGenerator() ↵Gaming4JC2019-12-17-4/+4
| | | | | | method. Tag #1287
* Bug 336705 - Part 1: Support creating and resolving Promises without ↵Gaming4JC2019-12-17-34/+48
| | | | | | | | resolve/reject functions. Useful for internally-created Promises that'll only ever be resolved/rejected internally. Tag #1287
* Bug 1317376 - Part 2: Detect Promise self-resolution when resolving through ↵Gaming4JC2019-12-17-18/+14
| | | | | | the Promise resolving fast path. Tag #1287
* Bug 1317376 - Part 1: Remove unreachable code and remnants from the ↵Gaming4JC2019-12-17-52/+41
| | | | | | self-hosted implementation. Tag #1287
* Issue #1302 followup - Add spec-compliance checks/errorswolfbeast2019-11-30-2/+5
| | | | | | - Check for undefined/null regex flags (because...) - Make it throw a typeerror instead of syntax error on non-global - Generalize JS error messages for these checks.
* Issue #1302 - Add self-hosted implementation for string regex .matchAllwolfbeast2019-11-26-0/+165
| | | | This resolves #1302.
* Issue #1284 - Update js/src/builtin/TestingFunctions.cpp for /s (dotAll) ↵Gaming4JC2019-11-18-0/+1
| | | | | | regular expression changes This fixes debug builds
* Issue #1284 - Implement /s (dotAll) for regular expressions, v2.wolfbeast2019-11-18-1/+40
| | | | Resolves #1284.
* Revert "Issue #1284 - Implement /s (dotAll) for regular expressions."wolfbeast2019-11-18-32/+0
| | | | This reverts commit f31b04a303607cd82757e7c4f60bb536658c8a30.
* Issue #1284 - Implement /s (dotAll) for regular expressions.wolfbeast2019-11-18-0/+32
| | | | Resolves #1284.
* Issue #1279 - Update js/src/builtin/TestingFunctions.cpp for regex ↵Gaming4JC2019-11-14-3/+3
| | | | | | lookbehind changes This fixes debug builds
* Issue #1283 - Implement Promise.prototype.finally()André Bargull2019-11-12-0/+85
| | | | This resolves #1283.
* Merge branch 'master' into js-moduleswolfbeast2019-11-10-396/+634
|\ | | | | | | | | # Conflicts: # modules/libpref/init/all.js
| * Merge pull request #1262 from athenian200/solaris-workMoonchild2019-11-02-1/+4
| |\ | | | | | | Support Modern Solaris
| | * MoonchildProductions#1251 - Part 27: Fix ifdef style.athenian2002019-10-21-1/+1
| | | | | | | | | | | | This should do it for all the commits to files I changed, but while I'm in here I could probably go ahead and turn ALL the singular if defined statements into ifdef statements by using grep/find on the tree. On the other hand, perhaps we should do that as a separate issue so that this doesn't become a case of scope creep.
| | * MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up.athenian2002019-10-21-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-95/+0
| | |
| * | Issue #1257 - Part1: Remove watch class-hook and proxy trap.wolfbeast2019-10-26-1/+0
| |/
| * No issue - Update TZ data to 2019cwolfbeast2019-10-02-1/+1
| |
| * Fix order of OwnProperty check for rest parameters.Moonchild2019-07-19-1/+1
| | | | | | This was a small mistake when converting from the `hasOwn()` function format (swapped parameters). Fixing this properly makes rest parameters exclude the parameters that are defined (which is the whole point of `...rest`
| * 1339395 - Part 3: Add BytecodeEmitter support for object rest and spread ↵Gaming4JC2019-07-18-0/+63
| | | | | | | | properties.
| * 1339395 - Part 2: Add parser support for rest and spread object properties.Gaming4JC2019-07-18-0/+12
| |
| * 1283712 - Part 9: Add getErrorNotes testing function to extract error notes ↵Gaming4JC2019-07-18-0/+30
| | | | | | | | from exception.
| * 1320408 - Part 23: Change ↵Gaming4JC2019-07-18-5/+5
| | | | | | | | RegExpObject::{getShared,createShared,dumpBytecode} to static method.
| * 1320408 - Part 21: Change PromiseObject::onSettled to static method.Gaming4JC2019-07-18-5/+4
| |
| * 1320408 - Part 20: Change PromiseObject::resolve and PromiseObject::reject ↵Gaming4JC2019-07-18-12/+14
| | | | | | | | to static method.
| * 1320408 - Part 19: Remove JSContext* parameter from ↵Gaming4JC2019-07-18-2/+2
| | | | | | | | ModuleObject::fixEnvironmentsAfterCompartmentMerge.
| * 1320408 - Part 14: Change some GlobalObject methods to static method.Gaming4JC2019-07-18-58/+62
| |