Commit graph

129 commits

Author SHA1 Message Date
wolfbeast
c16e82c9b1 Issue #1302 - Add self-hosted implementation for string regex .matchAll
This resolves #1302.
2019-11-28 10:32:42 +08:00
wolfbeast
8148cf0001 Issue #1284 - Implement /s (dotAll) for regular expressions, v2.
Resolves #1284.
2019-11-22 10:52:02 +08:00
André Bargull
ff54e6899f Issue #1283 - Implement Promise.prototype.finally()
This resolves #1283.
2019-11-15 14:23:09 +08:00
janekptacijarabaci
67f5e5d20c Bug 1341298 - Relax expected module state when resolving modules and circular module dependencies are present 2019-11-11 21:57:58 +08:00
janekptacijarabaci
e82ffc59bb Bug 1326453 - Part 5: Remove no longer used ListIterator implementation 2019-11-11 21:57:42 +08:00
athenian200
6de8a0f12d MoonchildProductions#1251 - Part 1: Restore initial Solaris support, fixed up.
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.
2019-11-04 11:52:13 +08:00
wolfbeast
ca9e376e55 Issue #1257 - Part 2: Remove watch/unwatch and JS watchpoint class. 2019-11-01 10:24:09 +08:00
wolfbeast
3b9fbdc71d Issue #1257 - Part1: Remove watch class-hook and proxy trap. 2019-11-01 10:24:07 +08:00
wolfbeast
33d503a975 Use the correct group for JIT constraints.
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
2019-09-06 23:49:58 +08:00
Gaming4JC
1e126cc49d 1339395 - Part 3: Add BytecodeEmitter support for object rest and spread properties. 2019-07-22 19:52:39 +08:00
Gaming4JC
4f51cc381d 1344477 - Part 2: Optimize Array.prototype.splice with JSOP_NORVCALL. 2019-07-22 19:52:27 +08:00
Gaming4JC
417aa02122 1344477 - Part 1: Add JSOP_CALL_IGNORES_RV for function call that ignores return value. 2019-07-22 19:52:23 +08:00
Gaming4JC
f79ee2fd83 1216630 - Print class source when calling toString on the constructor.
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.
2019-07-22 19:51:38 +08:00
Gaming4JC
5b4cd90516 Fix a thread assertion in NewCopiedArrayTryUseGroup 2019-07-22 19:51:05 +08:00
Gaming4JC
c1f6b0ff36 1336783 - Part 1: Rework on reserved word and remove TokenStream::KeywordIsName. 2019-07-22 19:50:44 +08:00
Gaming4JC
700a57c289 1283712 - Part 10: Support notes in getLastWarning shell-only testing function. 2019-07-22 19:50:30 +08:00
Gaming4JC
19854690b7 1332245 - Move nsScriptError from js/xpconnect to dom/bindings. 2019-07-22 19:50:13 +08:00
Gaming4JC
f8f673d986 1283712 - Part 5: Support notes in Debugger. 2019-07-22 19:49:59 +08:00
Gaming4JC
c92b219172 1339137 - Don't do Annex B lexical function behavior when redeclaring a parameter name in a function with parameter expressions. 2019-07-22 19:49:28 +08:00
Gaming4JC
26cafc58b3 1320408 - Part 26: Remove Shape::set declaration. 2019-07-22 19:49:15 +08:00
Gaming4JC
f232a0b574 1320408 - Part 25: Change NativeObject::toDictionaryMode to static method. 2019-07-22 19:49:11 +08:00
Gaming4JC
83fb6841af 1320408 - Part 24: Change NativeObject::{fillInAfterSwap,replaceWithNewEquivalentShape,generateOwnShape,shadowingShapeChange} to static method. 2019-07-22 19:49:04 +08:00
Gaming4JC
8a42a64748 1320408 - Part 23: Change RegExpObject::{getShared,createShared,dumpBytecode} to static method. 2019-07-22 19:48:59 +08:00
Gaming4JC
317605333c 1320408 - Part 22: Remove JSContext* parameter from ProxyObject::renew and Wrapper::Renew. 2019-07-22 19:48:52 +08:00
Gaming4JC
62eeeb76b5 1320408 - Part 19: Remove JSContext* parameter from ModuleObject::fixEnvironmentsAfterCompartmentMerge. 2019-07-22 19:48:36 +08:00
Gaming4JC
3fb93ffdf6 1320408 - Part 18: Change StringObject::init to static method. 2019-07-22 19:48:30 +08:00
Gaming4JC
d102bd41c8 1320408 - Part 17: Change NativeObject::clearFlag to static method. 2019-07-22 19:48:27 +08:00
Gaming4JC
9e0f10ac59 1320408 - Part 16: Change NativeObject::removeProperty to static method. 2019-07-22 19:48:22 +08:00
Gaming4JC
a2451c8234 1320408 - Part 15: Change NativeObject::addDataProperty to static method. 2019-07-22 19:48:18 +08:00
Gaming4JC
cc8cb910dd 1320408 - Part 14: Change some GlobalObject methods to static method. 2019-07-22 19:48:14 +08:00
Gaming4JC
b237ae6437 1320408 - Part 13: Change DebugEnvironmentProxy::getMaybeSentinelValue to static method. 2019-07-22 19:48:09 +08:00
Gaming4JC
d208cccd10 1320408 - Part 12: Change JSScript::sourceData to static method. 2019-07-22 19:48:01 +08:00
Gaming4JC
7f856ff769 1320408 - Part 9: Change JSObject::setFlags and depending methods to static method. 2019-07-22 19:47:51 +08:00
Gaming4JC
7e0b20a7bf 1320408 - Part 8: Change JSObject::reportNotConfigurable and JSObject::reportNotExtensible to static method. 2019-07-22 19:47:47 +08:00
Gaming4JC
f32edc66ae 1320408 - Part 7: Remove JSContext* parameter from JSObject::shouldSplicePrototype. 2019-07-22 19:47:44 +08:00
Gaming4JC
a38594f890 1320408 - Part 6: Change JSObject::splicePrototype to static method. 2019-07-22 19:47:40 +08:00
Gaming4JC
6a21912a94 1320408 - Part 5: Change JSObject::constructorDisplayAtom to static method. 2019-07-22 19:47:37 +08:00
Gaming4JC
87bfc02f09 1320408 - Part 4: Change JSObject::getGroup to static method. 2019-07-22 19:47:34 +08:00
Gaming4JC
ed78b21cf0 1320408 - Part 3: Remove JSContext* parameter from JSFunction::getBoundFunctionArgument. 2019-07-22 19:47:31 +08:00
Gaming4JC
07cd213071 1320408 - Part 2: Change JSFunction::getOrCreateScript to static method. 2019-07-22 19:47:27 +08:00
Gaming4JC
6633322957 1320408 - Part 1: Change JSFunction::getLength and JSFunction::getUnresolvedLength to static method. 2019-07-22 19:47:24 +08:00
Gaming4JC
3ce5343851 1175823 - Implement [[DefineOwnProperty]] for mapped arguments object. 2019-07-22 19:47:18 +08:00
Gaming4JC
337cdbd0ce 1333143 - Self-host Object.prototype.valueOf. 2019-07-22 19:47:12 +08:00
Gaming4JC
2391e18681 903389 - Fix uses of ClassMethodIsNative. 2019-07-22 19:47:04 +08:00
wolfbeast
e4c7c846c8 Remove anyNewScript() 2019-06-28 20:11:27 +08:00
wolfbeast
82e3eafecf Remove UnboxedObjects ObjectGroup addendum 2019-06-28 20:11:18 +08:00
wolfbeast
aa89a14709 Remove Unboxed Object code from /vm, Part 3. 2019-06-28 20:11:10 +08:00
wolfbeast
3e1ffa6cf6 Remove Unboxed Object code from jit, Part 2. 2019-06-28 20:10:58 +08:00
wolfbeast
bd6c34b56a Revert "Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again."
This reverts commit 912c3f5cbc512557794a3dfd7bc5cb4994413dfe.
2019-06-28 20:10:21 +08:00
wolfbeast
a6bb928fa4 Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again. 2019-06-19 21:34:38 +08:00