summaryrefslogtreecommitdiffstats
path: root/js
Commit message (Collapse)AuthorAgeLines
* Avoid using memset on a not-trivial type like ServoSizestrav902018-08-18-1/+9
|
* Avoid using memset on a not-trivial type like TabSizestrav902018-08-18-1/+7
|
* Avoid doing a memset on a non-POD structuretrav902018-08-18-13/+33
| | | | | | |entryCount| tracks -- in fast-to-check manner -- the number of entries in the hashtable. But to actually enumerate entries, we have to loop through all of |table|, checking for entries that are actually live. A live entry is indicated by a zero |hash| in the entry. The |memset| would properly zero that; removing the memset will not. It's not entirely clear whether a memset that overwrites a lot of stuff but is maybe simpler, is faster than compiler-generated likely-SIMD code that zeroes out *just* |hash| fields in all the entries. But I am going to guess that SIMD is good enough. For now, we should just do the simple and thing: don't distinguish POD and non-POD, and know that the compiler is going to recognize that |mem.addr()->~T()| is a no-op when T is trivial. So with POD, the loop should degenerate to just zeroing |hash| at consistent offset, and SIMD will eat that up, and it can't be *that* different from the memset in performance (if it is at all).
* Merge pull request #707 from trav90/class-memaccess-errorsMoonchild2018-08-13-28/+10
|\ | | | | Simplify HeapSlot to make it trivially copyable
| * Simplify HeapSlot to make it trivially copyabletrav902018-08-12-29/+8
| | | | | | | | 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.
| * Avoid using memcpy on HeapSlot that is not trivially copyable.trav902018-08-12-4/+7
| |
* | js::atomics_wait: Remove unnecessary parentheses in declaration of 'addr'trav902018-08-10-1/+1
|/ | | | Silences a warning with GCC 8.
* Merge pull request #628 from janekptacijarabaci/build_bustage_debug_1Moonchild2018-07-13-0/+3
|\ | | | | Fix Build Bustage - with "--enable-debug"
| * Fix Build Bustage - with "--enable-debug"janekptacijarabaci2018-07-12-0/+3
| |
* | Remove recover instruction results after bailouts.wolfbeast2018-07-13-38/+20
|/
* Issue #578: Applications cannot start without /proc (chroot).wolfbeast2018-07-02-3/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1464829 - Ensure the recover instruction vector has the expected size.Nicolas B. Pierron2018-06-07-5/+1
|
* Bug 1465108 - Use function pointers rather than virtual run method for GC ↵Jon Coppeard2018-06-07-37/+72
| | | | parallel tasks r=sfink a=abillings a=RyanVM
* Fix count of compacting update tasks started.wolfbeast2018-06-07-1/+1
|
* Reinstate string.prototype.contains()wolfbeast2018-06-07-1/+9
| | | | This adds a compatibility function aliased to string.prototype.includes().
* Refactor structured clone JSAPI to prevent mismatched scopes.wolfbeast2018-06-07-254/+385
| | | | Roll-up of bugs 1442722, 1455071, 1433642, 1456604 and 1458320.
* Change inlining of intrinsics.wolfbeast2018-06-07-40/+206
|
* Update tzdata in ICU data files to 2018e.André Bargull2018-06-07-5/+5
|
* Remove support and tests for HSTS priming from the tree. Fixes #384Gaming4JC2018-05-26-0/+1
|
* Remove SPS profiler.wolfbeast2018-05-24-10/+0
| | | | | - Conditionals and code blocks. (MOZ_ENABLE_PROFILER_SPS) - Stub out several profiler-only functions.
* Merge branch 'intl-ICU-emoji-work'wolfbeast2018-05-04-1031/+22
|\
| * Make InitRuntimeNumberState's return type reflect its infallible nature.wolfbeast2018-05-04-9/+3
| |
| * Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals.wolfbeast2018-05-04-392/+4
| |
| * Issue #325 Part 5: Remove non-Intl legacy code paths from js.wolfbeast2018-05-04-632/+17
| |
* | Fix regex escaping in old-configure and js/src/old-configureJustOff2018-05-04-1/+3
| |
* | Remove unused XREShellDatawolfbeast2018-05-03-7/+2
| |
* | Remove sandbox ductwork conditional code.wolfbeast2018-05-03-36/+0
|/
* [regression] [follow up] Error: No such property on self-hosted object: ↵janekptacijarabaci2018-04-30-1/+125
| | | | | | "Intl_getDisplayNames" Issue #162 and #264
* Bug 1452619 - Implement mozilla::IsAsciiAlpha. r=froydnj, a=lizzardJeff Walden2018-04-29-1/+2
|
* Bug 1411415.wolfbeast2018-04-29-20/+78
|
* Move --enable-tests out of Python configure and flip the default.wolfbeast2018-04-29-0/+10
|
* Merge branch 'malloc-rewrite'wolfbeast2018-04-28-20/+0
|\ | | | | | | This resolves #263.
| * Remove jemalloc 4 from our tree.wolfbeast2018-04-27-4/+0
| |
| * Remove support for making jemalloc4 the default memory allocator.wolfbeast2018-04-27-16/+0
| |
* | Use SRWlocks for js mutexes on Windows.wolfbeast2018-04-28-49/+8
|/
* Avoid calling slice in self-hosted code. DiDwolfbeast2018-04-25-3/+21
| | | | This time without unrelated/incomplete pluralforms junk.
* Revert "Add pluralrules to JS Intl"wolfbeast2018-04-25-542/+134
| | | | This reverts commit 7686bceecff17f91758c8c6547a78e71ff3a8c38.
* Remove build support for HP-UXwolfbeast2018-04-24-12/+1
| | | | Note: 3rd party lib support (NSS, etc.) has not been touched.
* Bug 1444668 - Avoid allocating large AssemblerBuffers. r=luke, r=bbouvier, ↵Jan de Mooij2018-04-19-9/+49
| | | | a=RyanVM
* Bug 1449574 - Update tzdata in ICU data files to 2018d. r=Waldo, a=RyanVMAndré Bargull2018-04-19-5/+5
|
* Merge pull request #168 from janekptacijarabaci/xpcom_exportFunction_length_1New Tobin Paradigm2018-04-17-1/+13
|\ | | | | moebius#242: XPCOM: exportFunction() - fix wrong .length attribute
| * moebius#242: XPCOM: exportFunction() - fix wrong .length attributejanekptacijarabaci2018-04-14-1/+13
| | | | | | | | https://github.com/MoonchildProductions/moebius/pull/243
* | Merge branch 'html_input_datetime_1'wolfbeast2018-04-15-0/+697
|\ \ | |/ |/| | | This is almost everything needed for #162.
| * Bug 1310078 - Implement valueAsNumber and valueAsDate for <input ↵janekptacijarabaci2018-03-30-0/+20
| | | | | | | | type=datetime-local>
| * Bug 1287677 - Add mozIntl.getDisplayNames APIjanekptacijarabaci2018-03-30-0/+677
| |
* | Convert MOZILLA_OFFICIAL conditionals to MC_OFFICIAL where needed.wolfbeast2018-04-13-0/+1
| | | | | | | | | | | | | | | | | | - `--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.
* | Rebase on masterwolfbeast2018-04-11-103/+88
|\ \
| * \ Merge pull request #94 from trav90/js-workMoonchild2018-04-08-99/+83
| |\ \ | | | | | | | | Fix Value::isGCThing footgun, stop returning true for NullValue
| | * | Fix Value::isGCThing footgun, stop returning true for NullValuetrav902018-04-07-99/+83
| | | |
| * | | Fix incorrect assertions in js/src/builtin/trav902018-04-06-2/+2
| |/ / | | | | | | | | | Prevents GCC 7 build warning spam.