1
0
mirror of https://github.com/roytam1/UXP.git synced 2026-06-28 19:28:35 +00:00
Commit Graph

135 Commits

Author SHA1 Message Date
trav90 4f91b109d0 Simplify HeapSlot to make it trivially copyable
This removes the constructors, which were never called since we allocate arrays of HeapSlot with pod_malloc. The destructor is only ever called explicitly since we free this memory with js_free so it has been renamed to destroy(). Also removed is an unused manual barrier.
2019-02-16 00:11:06 +08:00
trav90 413f205479 Avoid using memcpy on HeapSlot that is not trivially copyable. 2019-02-16 00:11:05 +08:00
trav90 6fe56d9f39 js::atomics_wait: Remove unnecessary parentheses in declaration of 'addr'
Silences a warning with GCC 8.
2019-02-16 00:10:55 +08:00
janekptacijarabaci d57aa4fc94 Fix Build Bustage - with "--enable-debug" 2019-02-16 00:08:38 +08:00
wolfbeast 2a6262ee6d Remove recover instruction results after bailouts. 2019-02-16 00:08:29 +08:00
wolfbeast e9342c1ad5 Issue #578: Applications cannot start without /proc (chroot).
UXP uses the current stack frame address and the stack size
as a sort of heuristic for various things in the JavaScript
engine.  The js::GetNativeStackBaseImpl() function is used to
get the base stack address (i.e. the address from which the stack
grows, so this can be either the first or last memory address of
the stack memory space depending on the CPU architecture).

On Linux, this function is implemented using the pthreads APIs.
For non-main threads, the queried thread info is stored in
memory.  The main thread does not have this information on hand,
so it gets the stack memory range via the /proc/self/maps file
(see glibc's pthread_get_attr_np.c).

Fortunately (per discussions with the firefox devs in #jsapi)
the base address only needs to be approximate.  In reality,
environment variables, args, and other things are stored in
stack space between the end/beginning of the mapped stack
memory and the 'top' of the stack space used by stack frames.

When using glibc, we can get the top of this usable stack from
__libc_stack_end, which is a void* set by glibc during program
initialization, avoiding the need to access /proc.
Non-main threads still get their stack-base through the usual
pthreads APIs.
Other libc implementations like musl will fall back to the
standard UNIX-like implementation which calls pthread's
pthread_attr_getstack() also from the main thread, which
may imply /proc access and not work in restricted
environments.
2019-02-16 00:06:45 +08:00
Nicolas B. Pierron 0c1ca8a865 Bug 1464829 - Ensure the recover instruction vector has the expected size. 2019-02-16 00:01:56 +08:00
Jon Coppeard 89e332cfec Bug 1465108 - Use function pointers rather than virtual run method for GC parallel tasks r=sfink a=abillings a=RyanVM 2019-02-16 00:01:53 +08:00
wolfbeast 9ca1242630 Fix count of compacting update tasks started. 2019-02-16 00:01:51 +08:00
wolfbeast 591dc9ea93 Reinstate string.prototype.contains()
This adds a compatibility function aliased to string.prototype.includes().
2019-02-16 00:01:40 +08:00
wolfbeast 0795e50d87 Refactor structured clone JSAPI to prevent mismatched scopes.
Roll-up of bugs 1442722, 1455071, 1433642, 1456604 and 1458320.
2019-02-16 00:01:32 +08:00
wolfbeast 8f16d02c34 Change inlining of intrinsics. 2019-02-16 00:01:15 +08:00
André Bargull dca3b936bf Update tzdata in ICU data files to 2018e. 2019-02-16 00:01:13 +08:00
wolfbeast e3e1be66db Make InitRuntimeNumberState's return type reflect its infallible nature. 2019-02-15 23:56:18 +08:00
wolfbeast 8e9e42c7d8 Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
wolfbeast d1c16b1326 Issue #325 Part 5: Remove non-Intl legacy code paths from js. 2019-02-15 23:56:03 +08:00
JustOff 401655260c Fix regex escaping in old-configure and js/src/old-configure 2019-02-15 23:55:50 +08:00
janekptacijarabaci c4dabac726 [regression] [follow up] Error: No such property on self-hosted object: "Intl_getDisplayNames"
Issue #162 and #264
2019-02-15 23:54:10 +08:00
Jeff Walden 48ffdb584c Bug 1452619 - Implement mozilla::IsAsciiAlpha. r=froydnj, a=lizzard 2019-02-15 23:53:19 +08:00
wolfbeast 66bf4fa8f9 Bug 1411415. 2019-02-15 23:53:18 +08:00
wolfbeast 8ffcc15d3f Move --enable-tests out of Python configure and flip the default. 2019-02-15 23:53:16 +08:00
wolfbeast d804882857 Remove jemalloc 4 from our tree. 2019-02-15 23:52:10 +08:00
wolfbeast 8ee79282f8 Avoid calling slice in self-hosted code. DiD
This time without unrelated/incomplete pluralforms junk.
2019-02-15 23:50:23 +08:00
wolfbeast 7e93e7170f Revert "Add pluralrules to JS Intl"
This reverts commit 7686bceecff17f91758c8c6547a78e71ff3a8c38.
2019-02-15 23:50:22 +08:00
wolfbeast 51510273b0 Remove build support for HP-UX
Note: 3rd party lib support (NSS, etc.) has not been touched.
2019-02-15 23:50:07 +08:00
Jan de Mooij 52269fa01a Bug 1444668 - Avoid allocating large AssemblerBuffers. r=luke, r=bbouvier, a=RyanVM 2019-02-15 23:47:22 +08:00
André Bargull f1e8f6742a Bug 1449574 - Update tzdata in ICU data files to 2018d. r=Waldo, a=RyanVM 2019-02-15 23:47:14 +08:00
janekptacijarabaci 344ea39e20 Bug 1310078 - Implement valueAsNumber and valueAsDate for <input type=datetime-local> 2019-02-15 23:44:42 +08:00
janekptacijarabaci 5381ebe25c Bug 1287677 - Add mozIntl.getDisplayNames API 2019-02-15 23:44:41 +08:00
wolfbeast d37246737b Convert MOZILLA_OFFICIAL conditionals to MC_OFFICIAL where needed.
- `--enable-official-branding` implies `MC_OFFICIAL` (no need to specifically set it)
- `--enable-official-vendor` can be used to set `MC_OFFICIAL` on builds without `--enable-official-branding` that should still be considered official release versions.
- `MC_OFFICIAL` implies `--enable-release`, meaning `DEVELOPER_OPTIONS` isn't set
- `MC_OFFICIAL` makes `nsXULAppInfo.getIsOfficial` return `true`
- `MC_OFFICIAL` makes `AppConstants.MOZILLA_OFFICIAL` (for compatibility in extensions) and `AppConstants.MC_OFFICIAL` return `true`
- Optional, for the time being: `MOZILLA_OFFICIAL` is still present in some places in case someone wants to build a Mozilla-alike official application and has the rights and necessary keys to use Mozilla-official third-party services. This must always be combined with `MC_OFFICIAL` to have a sane combination of defines. This may be removed in the future.
2019-02-15 23:44:10 +08:00
trav90 10b24b8110 Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
trav90 c5757236c9 Fix incorrect assertions in js/src/builtin/
Prevents GCC 7 build warning spam.
2019-02-15 23:41:15 +08:00
wolfbeast b79a4ce07d Silence for-each-in warnings 2019-02-15 23:40:55 +08:00
janekptacijarabaci f8591643c5 JS - support for Array.prototype.values() 2019-02-15 23:39:48 +08:00
wolfbeast ef6478af8c Revert "Enable Array.prototype.values"
This reverts commit 424ed1b165e50f2e71c082c0c70fcda2a2764d18.
2019-02-15 23:39:47 +08:00
wolfbeast 663b7836f5 Enable Array.prototype.values
This resolves #85
2019-02-15 23:39:40 +08:00
janekptacijarabaci 78ce3bf8ff Bug 1317397: Only set lastIndex for global or sticky RegExps in RegExpBuiltinExec per ES2017 2019-02-15 23:39:39 +08:00
janekptacijarabaci 401d677e47 Bug 1343375: Update RegExp.prototype.replace and .match to call ToLength(lastIndex) for non-global RegExp and handle recompilations
[Depends on] Bug 1317397: Implement RegExp.lastIndex changes from ES2017
2019-02-15 23:39:37 +08:00
janekptacijarabaci 76b099abb2 Bug 1360839 - Call IteratorClose due to abrupt completion from yield
Issue #74
2019-02-15 23:39:36 +08:00
janekptacijarabaci ac07311b18 Bug 1357075 - Pad a nop to unwind to the scope just before a destructuring iterator close trynote
Issue #74
2019-02-15 23:39:34 +08:00
janekptacijarabaci 8af5664922 Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by try statements inside for-of
Issue #74
2019-02-15 23:39:32 +08:00
janekptacijarabaci 5bf58e6044 Bug 1342553 - Part 0.2: Support JSOP_CHECKISCALLABLE in JIT
Issue #74
2019-02-15 23:39:30 +08:00
janekptacijarabaci 444483bf81 Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)
Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of
Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in
JSTRY_FOR_OF
Bug 1344753 - Update for-of stack depth in
ControlFlowGenerator::processWhileOrForInLoop

Issue #74
2019-02-15 23:39:29 +08:00
janekptacijarabaci b0960bf497 Bug 1334314 - Fix debug mode OSR exception handling for IteratorClose trynotes
Issue #74
2019-02-15 23:39:27 +08:00
janekptacijarabaci 4ac4296fce Bug 1331585 - Allow falsy "done" values for IteratorClose due to exception during array destructuring
Issue #74
2019-02-15 23:39:26 +08:00
janekptacijarabaci b8eb17e022 Bug 1341339 - Check for duplicates in processIterators
Issue #74
2019-02-15 23:39:24 +08:00
janekptacijarabaci 24ea151662 Bug 1338796 - Do not call iterator.return if iterator.throw is present in yield*
Issue #74
2019-02-15 23:39:23 +08:00
janekptacijarabaci ea58c0c344 Bug 1335996 - Make test for bug 1333946 more reliable
Issue #74
2019-02-15 23:39:21 +08:00
janekptacijarabaci b2e86b0087 Bug 1333946 - Make IonBuilder::processIterators transitive
Issue #74
2019-02-15 23:39:20 +08:00
janekptacijarabaci 3bd6ad26e7 Bug 1322069 - Add TryEmitter
Issue #74
2019-02-15 23:39:18 +08:00