Commit graph

869 commits

Author SHA1 Message Date
FranklinDM
558b83975c Issue #2065 - Part 3: Process install manifests with --track in the recursive make backend
This excludes parts that remove support for building the Mozilla SDK.
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1390916
2022-12-30 09:20:05 +08:00
Martok
904ddfa28f Follow-up #2060 - Correctly handle \k in non-unicode expressions 2022-12-30 09:08:53 +08:00
Martok
81a8ac427a Issue #1286 - Parse unicode property escapes and property sequences
In addition to upstream, we also allow RGI-named sequences since they're used in the wild.
2022-12-24 08:09:55 +08:00
Martok
d2e0e199b7 No issue - Refactor CharacterRange + Unicode handling into module for maintainability
Collects code from RegExpParser and RegExpEngine (regexp-compiler-tonode.cc)
Simplify parsing AtomEscape/CharacterClassEscape
2022-12-24 08:09:52 +08:00
Martok
6eead2deb4 Issue #1285 - Implement named capturing groups for replacing 2022-12-24 08:09:49 +08:00
Martok
e81a8d866d Issue #1285 - implement named capturing groups and named backrefs
- RegExpParser collects seen groups in named_captures_.
- After irregexp::ParsePattern has finished, RegExpParser::StoreNamedCaptureMap translates
  the parser data to RegExpCompileData.capture_name/index
- RegExpShared::initializeNamedCaptures takes these and builds a PlainObject map which
  is kept with the compiled expression
This is done because irregexp doesn't have access to the JS context and so can't allocate
any JSValues itself.
- for each match result, this map is used to build PlainObjects of name->match/undefined
  (extremely simplified from upstream at the expense of some perf)

IonMonkey switches to non-masm code path for expressions with named groups.
2022-12-24 08:09:39 +08:00
Martok
05a8a5271c No issue - Refactor parsing of unicode escapes to be more general 2022-12-24 08:09:37 +08:00
Martok
952f2273b6 No issue - Fix VectorMatchPairs allocating more memory than required 2022-12-24 08:09:33 +08:00
Martok
199ff12ba8 No issue - Flag to parse 'v' flag as 'u' for automated tests, disabled by default 2022-12-24 08:09:25 +08:00
Martok
85cb46096a No issue - refactor base classes for easier access
- move InfallibleVector into its own header, together with common typedefs
- refactor CapturesVector
2022-12-24 08:09:22 +08:00
Martok
5555a72d8e Issue #2056 - Fix handling of captures in lookbehinds
- Port unification of CheckNotBackReference*
- Port LoadCurrentCharacter
- Make RegExpMacroAssembler::CheckAtStart understand cp_offset
- Replace magic numbers in ChoiceNode::Emit, Trace::PerformDeferredActions
- CheckBacktrackStackLimit
- Allow backrefs to resist recursion
2022-12-24 08:09:18 +08:00
Moonchild
4db6fa8360 Issue #1279 - Implement regular expressions lookbehind (v3)
Based on d10e8a5b with the addition of chromium issue 570241.
2022-12-24 08:09:04 +08:00
Moonchild
bf19c2087b Update timezone data to 2022e 2022-11-10 14:55:09 +08:00
FranklinDM
1a55f18324 Issue #58 - Remove leftover rust build files from /js 2022-10-27 08:58:50 +08:00
Moonchild
2f0896ab31 Issue #1279 - Implement regular expressions lookbehind (v2)
Because of some additional changes in the JS engine in the meantime,
this implementation should work and not crash due to slot allocation.
2022-10-13 10:40:14 +08:00
Moonchild
d32162089d Issue #2016 - Remove non-functional V8 regex import 2022-10-12 17:21:14 +08:00
Moonchild
1868e88741 Fix some debug assertions.
refactored code porting in assertions causing debug build failures.
2022-10-06 10:26:38 +08:00
Moonchild
05389eb41f Issue #2008 - Implement missing s parameter parsing and align case with spec.
This does 2 things.
First, it adds parsing of the 's' parameter parsing to DOM object construction of regexes
Second, it corrects the DOM property to be `dotAll` instead of `dotall`

For consistency's sake, all function names and calls were renamed with the finalized casing.

This resolves #2008
2022-09-19 16:20:22 +08:00
Moonchild
4bdd6dd93c Issue #80 - Re-unify building of /js/src 2022-09-07 11:02:02 +08:00
Moonchild
c86c612bb5 Revert "Issue #1676 - Part 4: Split builtin sources out of js/src/moz.build" 2022-09-07 11:01:51 +08:00
Moonchild
1c6fb7fcaa Revert "Issue #1676 - Part 5: Split devtools sources out of js/src/moz.build"
This reverts commit 24b835f0a92881903c6e5f0cebb7ffa93c5e9d05.
2022-09-07 11:01:37 +08:00
Moonchild
62b5ce90af Revert "Issue #1676 - Part 6: Split ds sources out of js/src/moz.build"
This reverts commit eedfa63a1d244426df38be6d72ee35422a5d9d82.
2022-09-07 11:01:23 +08:00
Moonchild
cd3c43e614 Revert "Issue #1676 - Part 7: Split frontend sources out of js/src/moz.build"
This reverts commit 1396383aeed414c23b3dce639932987000412be0.
2022-09-07 11:01:10 +08:00
Moonchild
5f23cd3017 Revert "Issue #1676 - Part 8: Fix up include for selfhosted.out.h"
This reverts commit bc450dab41695f85290f83c53c2c6914c1710883.
2022-09-07 11:00:53 +08:00
Moonchild
28392d5dca Revert "Issue #1676 - Part 9: Move DIRS down in js/src/moz.build" 2022-09-07 11:00:39 +08:00
Moonchild
8da86488ea Revert "Issue #1676 - Part 10: Split gc sources out of js/src/moz.build"
This reverts commit 65eac50e2dd9d2c4773a927aa7909eff13bc121c.
2022-09-07 11:00:25 +08:00
Moonchild
86b12c766d Revert "Issue #1676 - Part 11: Split irregexp sources out of js/src/moz.build"
This reverts commit 3d9bf5d7a32eb7076ad4e1782ca677981efff150.
2022-09-07 11:00:13 +08:00
Moonchild
f4c5ef005c Revert "Issue #1676 - Part 12: Split jit sources out of js/src/moz.build"
This reverts commit 95e057e737e3edcb270c256000b893365e1d9a9b.
2022-09-07 11:00:00 +08:00
Moonchild
b15c6109e9 Revert "Issue #1676 - Part 13: Split perf sources out of js/src/moz.build"
This reverts commit 383bc182e3a3fe53cf79a51bc36c6218334d93b5.
2022-09-07 10:59:46 +08:00
Moonchild
29fc6d519a Revert "Issue #1676 - Part 14: Split proxy sources out of js/src/moz.build"
This reverts commit 6f76f1cb362b98fc617c5c0735cdacee64103e89.
2022-09-07 10:41:56 +08:00
Moonchild
14da6dc66d Revert "Issue #1676 - Part 15: Split threading sources out of js/src/moz.build"
This reverts commit 2f50f543a245a559a277505dfa6906f1888ef0d9.
2022-09-07 10:41:43 +08:00
Moonchild
7a45d4dcf9 Revert "Issue #1676 - Part 16: Split WASM sources out of js/src/moz.build"
This reverts commit 1abc696f87d175ab967e0e86fdf375255c43e98d.
2022-09-07 10:41:29 +08:00
Moonchild
d83377b8ce Revert "Issue #1676 - Part 17: Put remaining source files which have debug code ifdef'd behind MOZ_DEBUG"
This reverts commit ff355fe9ac5327a62cdbd05f99dff9febe5de5df.
2022-09-07 10:41:18 +08:00
Moonchild
0e7a3f2144 Revert "Issue #1676 - Part 18: Move and separate top level sources from vm sources in js/src/moz.build"
This reverts commit 59511eb8dddac5556c4aa72d6d7fe1a2c3dc3972.
2022-09-07 10:40:59 +08:00
Moonchild
b03603e73e Revert "Issue #1676 - Part 19: Split ctypes sources out of js/src/moz.build"
This reverts commit cdf46e803b2fc1ab0787138890dfff67030e6516.
2022-09-07 10:40:47 +08:00
Moonchild
23a10c68fa Revert "Issue #1676 - Part 20: Split vtune sources out of js/src/moz.build"
This reverts commit fd1b2dc2b14ded708f8eb62a55109c03356c6b26.
2022-09-07 10:40:33 +08:00
Moonchild
7bb8046c17 Revert "Issue #1676 - Follow-up: Put js/src (including vm), jit, and wasm back into unified sources."
This reverts commit a8a397fbceb78d2338e214e583be4f02797637d1.
2022-09-07 10:40:18 +08:00
Moonchild
5dfded811d Issue #80 - reinstated unified building for some large chunks of our code.
This should reduce compile complexity saving time and reducing linker stress.
2022-09-07 10:36:23 +08:00
Moonchild
66424272f3 Issue #1999 - Switch to the unorm2 API for String.normalize()
Resolves #1999
2022-09-07 10:26:05 +08:00
Moonchild
59cf6bd808 Issue #1996 - Implement at() method on built-in indexables.
Resolves #1996
2022-09-01 10:19:41 +08:00
Moonchild
aedbffe910 Issue #1956 - Fix C++ code standard conformance issue in StoreBuffer.h 2022-09-01 10:18:54 +08:00
Job Bautista
3e6cbc6af3 Issue #1969 - Implement Intl.RelativeTimeFormat.
Based on Mozilla bugs 1270140, 1504656, 1483545, and 1504334.
Took note of Mozilla bug 1379222 which changed GetPrototypeFromCallableConstructor
 to GetPrototypeFromBuiltinConstructor.
There are many other changes I did myself since the initial implementation by
 Mozilla wouldn't work with this codebase.
2022-07-30 08:43:43 +08:00
Job Bautista
c090dd7ce8 Issue #1971 - Part 5: Update Spidermonkey for Unicode 11.
I forgot to do this while working on issue #326.
2022-07-30 08:43:43 +08:00
Job Bautista
1e69214382 Issue #1971 - Part 2: Update ICU source to 63.2. 2022-07-30 08:43:41 +08:00
Moonchild
065e8bc77b Issue #1805 - Follow-up: Include the same headers for Solaris as well to future-proof gcc versions. 2022-07-26 22:27:50 +08:00
Moonchild
3571cc8de0 Issue #1805 - Follow-up: provide for Linux builds using rlimit and min/max. 2022-07-26 22:27:12 +08:00
Moonchild
5ed7e7d56d Issue #1805 - Improve stack size limits for all targets.
This allows us to use a greater rendering depth for exceedingly-deep DOM trees
in layout, better matching what mainstream browsers are capable of. Note that
for 32-bit Windows the stack size MUST be set to larger than the default or Bad
Things Will Happen™ - we use 1.5 MB for this as a carefully-tuned value.

This needs to be capped specifically for JS use because some JavaScript
obfuscators deliberately trigger stack overflows and would lock up the browser
otherwise as long as there's still stack space to abuse. For web compatibility
we therefore limit this to 2MB in JS only (3x for ASAN) while still allowing
a greater depth for the layout engine.
2022-07-26 22:26:38 +08:00
Martok
887e6d0ab3 Issue #1952 - m-c 1440468: Proxied functions can't be passed to Function.prototype.toString.call() 2022-07-03 06:55:36 +08:00
Martok
85af7f6e80 Issue #1952 - m-c 1383775: Clean up function toString/toSource code, remove remnants of source decompiler 2022-07-03 06:55:19 +08:00
Martok
1e753237e5 Issue #1952 - m-c 1380962/2: Remove unnecessary lambda function in FunctionToString 2022-07-03 06:54:52 +08:00