Dactyloidae/js/src
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
..
builtin Refactor structured clone JSAPI to prevent mismatched scopes. 2019-02-16 00:01:32 +08:00
ctypes import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
devtools Remove GCZeal: Base cleanup 2019-02-14 14:37:49 +08:00
doc import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
ds import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
editline import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
frontend Silence for-each-in warnings 2019-02-15 23:40:55 +08:00
gc 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
gdb Issue #325 Part 5: Remove non-Intl legacy code paths from js. 2019-02-15 23:56:03 +08:00
irregexp JS - RegExp - match updated spec for /\b/iu and /\B/iu 2019-02-15 23:36:30 +08:00
jit Bug 1464829 - Ensure the recover instruction vector has the expected size. 2019-02-16 00:01:56 +08:00
jit-test Bug 1317397: Only set lastIndex for global or sticky RegExps in RegExpBuiltinExec per ES2017 2019-02-15 23:39:39 +08:00
jsapi-tests Issue #325 Part 5: Remove non-Intl legacy code paths from js. 2019-02-15 23:56:03 +08:00
octane import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
perf import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
proxy import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
shell Issue #325 Part 5: Remove non-Intl legacy code paths from js. 2019-02-15 23:56:03 +08:00
tests Refactor structured clone JSAPI to prevent mismatched scopes. 2019-02-16 00:01:32 +08:00
threading import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
vm 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
vtune import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
wasm Bug 1411415. 2019-02-15 23:53:18 +08:00
.clang-format import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
.gitignore import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
aclocal.m4 Remove jemalloc 4 from our tree. 2019-02-15 23:52:10 +08:00
build.rs import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
Cargo.lock import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
Cargo.toml import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
configure.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
dtoa.c import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
js-confdefs.h.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
js-config.h.in Remove remaining conditional GCZeal code. 2019-02-14 14:37:52 +08:00
js-config.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
js.msg Bug 1287677 - Add mozIntl.getDisplayNames API 2019-02-15 23:44:41 +08:00
js.pc.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsalloc.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsalloc.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsapi.cpp Part 1: Implement ES6 function name property semantics 2019-02-15 23:38:44 +08:00
jsapi.h Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
jsarray.cpp JS - support for Array.prototype.values() 2019-02-15 23:39:48 +08:00
jsarray.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsast.tbl import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsatom.cpp Bug 1317309: Throw a TypeError when passing a Symbol value to ToAtom 2019-02-15 23:38:42 +08:00
jsatom.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsatominlines.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsautokw.py import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsbool.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsbool.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsboolinlines.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsbytecode.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsclist.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jscntxt.cpp Part 1: Implement ES6 function name property semantics 2019-02-15 23:38:44 +08:00
jscntxt.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jscntxtinlines.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jscompartment.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jscompartment.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jscompartmentinlines.h Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
jscpucfg.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsdate.cpp Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
jsdate.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsdtoa.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsdtoa.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsexn.cpp Bug 1319952: Assertion failure: isNurseryAllocAllowed(), at js/src/gc/Allocator.cpp:79 2019-02-15 23:38:25 +08:00
jsexn.h Handle the now ordinary error prototype object in stack 2019-02-15 23:38:19 +08:00
jsfriendapi.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsfriendapi.h Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
jsfun.cpp Part 1: Implement ES6 function name property semantics 2019-02-15 23:38:44 +08:00
jsfun.h Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
jsfuninlines.h Part 1: Implement ES6 function name property semantics 2019-02-15 23:38:44 +08:00
jsgc.cpp 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
jsgc.h 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
jsgcinlines.h Remove GCZeal: Base cleanup 2019-02-14 14:37:49 +08:00
jshashutil.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsiter.cpp Bug 1147371: Implement IteratorClose for for-of 2019-02-15 23:39:00 +08:00
jsiter.h Bug 1147371: Implement IteratorClose for for-of 2019-02-15 23:39:00 +08:00
jslibmath.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsmath.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsmath.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsnativestack.cpp Issue #578: Applications cannot start without /proc (chroot). 2019-02-16 00:06:45 +08:00
jsnativestack.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsnspr.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsnum.cpp Make InitRuntimeNumberState's return type reflect its infallible nature. 2019-02-15 23:56:18 +08:00
jsnum.h Make InitRuntimeNumberState's return type reflect its infallible nature. 2019-02-15 23:56:18 +08:00
jsobj.cpp JS - support for Array.prototype.values() 2019-02-15 23:39:48 +08:00
jsobj.h JS - Object - "TypeError: setting a property that has only a getter" without mentioning file and property name 2019-02-15 23:36:24 +08:00
jsobjinlines.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
json.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
json.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsopcode.cpp Bug 1147371: Always decompile argument names in self-hosted code in the caller frame 2019-02-15 23:39:10 +08:00
jsopcode.h Bug 1147371: Implement JSOP_PICK and JSOP_UNPICK in the expression decompiler 2019-02-15 23:39:09 +08:00
jsopcodeinlines.h Bug 1147371: Implement JSOP_PICK and JSOP_UNPICK in the expression decompiler 2019-02-15 23:39:09 +08:00
jsprf.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsprf.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jspropertytree.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jspropertytree.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsprototypes.h Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
jspubtd.h Remove remaining conditional GCZeal code. 2019-02-14 14:37:52 +08:00
jsscript.cpp Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
jsscript.h Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by try statements inside for-of 2019-02-15 23:39:32 +08:00
jsscriptinlines.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsshell.msg import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsstr.cpp Reinstate string.prototype.contains() 2019-02-16 00:01:40 +08:00
jsstr.h Issue #325 Part 14: Remove EXPOSE_INTL_API conditionals. 2019-02-15 23:56:17 +08:00
jstypes.h Remove build support for HP-UX 2019-02-15 23:50:07 +08:00
jsutil.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsutil.h Remove remaining conditional GCZeal code. 2019-02-14 14:37:52 +08:00
jsversion.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jswatchpoint.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jswatchpoint.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsweakmap.cpp import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jsweakmap.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jswin.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
jswrapper.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
lib.rs import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
make-source-package.sh Remove jemalloc 4 from our tree. 2019-02-15 23:52:10 +08:00
Makefile.in Remove build support for HP-UX 2019-02-15 23:50:07 +08:00
moz.build Issue #325 Part 5: Remove non-Intl legacy code paths from js. 2019-02-15 23:56:03 +08:00
NamespaceImports.h import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
old-configure.in Fix regex escaping in old-configure and js/src/old-configure 2019-02-15 23:55:50 +08:00
README.html import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
symverscript.in import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00
Y.js import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00

<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta http-equiv="Refresh"
	 content="0;URL=http://developer.mozilla.org/en/docs/SpiderMonkey">
   <title>SpiderMonkey README</title>
</head>
<body>

<h1>SpiderMonkey README</h1>

<p>See the
<a href="http://developer.mozilla.org/en/docs/SpiderMonkey">SpiderMonkey
pages</a> on the Mozilla Developer Center</a>.

</body>
</html>