Activation-inl.h |
static |
4065 |
Activation.cpp |
|
1451 |
Activation.h |
|
22474 |
ArgumentsObject-inl.h |
namespace js |
1673 |
ArgumentsObject.cpp |
static |
38613 |
ArgumentsObject.h |
This array holds either the current argument value or the magic
forwarding value. The latter means that the function has both a
CallObject and an ArgumentsObject AND the particular formal variable is
aliased by the CallObject. In such cases, the CallObject holds the
canonical value so any element access to the arguments object should load
the value out of the CallObject (which is pointed to by MAYBE_CALL_SLOT).
|
21084 |
ArrayBufferObject-inl.h |
|
2160 |
ArrayBufferObject.cpp |
|
113017 |
ArrayBufferObject.h |
|
34566 |
ArrayBufferObjectMaybeShared.cpp |
|
3017 |
ArrayBufferViewObject.cpp |
static |
21584 |
ArrayBufferViewObject.h |
ArrayBufferViewObject
Common base class for all array buffer views (DataViewObject and
TypedArrayObject).
|
9940 |
ArrayObject-inl.h |
static |
2665 |
ArrayObject.h |
|
2268 |
AsyncFunction.cpp |
ES2022 draft rev d03c1ec6e235a5180fa772b6178727c17974cb14
Await in async function
https://tc39.es/ecma262/#await
Unified implementation of
Step 3. fulfilledClosure Abstract Closure.
Step 5. rejectedClosure Abstract Closure.
|
13041 |
AsyncFunction.h |
|
12493 |
AsyncIteration.cpp |
static |
51579 |
AsyncIteration.h |
|
20465 |
AtomsTable.h |
Implementation details of the atoms table.
|
5887 |
BigIntType.cpp |
|
124930 |
BigIntType.h |
|
22341 |
BindingKind.h |
|
3014 |
BooleanObject-inl.h |
= nullptr |
785 |
BooleanObject.h |
Stores this Boolean object's [[PrimitiveValue]]. |
1304 |
BoundFunctionObject.cpp |
|
17033 |
BoundFunctionObject.h |
|
6119 |
BuildId.cpp |
SpiderMonkey buildId-related functionality. |
1006 |
BuiltinObjectKind.cpp |
|
7046 |
BuiltinObjectKind.h |
Built-in objects used by the GetBuiltinConstructor and GetBuiltinPrototype
self-hosted intrinsics.
|
2078 |
BytecodeFormatFlags.h |
[SMDOC] Bytecode Format flags (JOF_*)
|
2919 |
BytecodeIterator-inl.h |
|
1070 |
BytecodeIterator.h |
|
2305 |
BytecodeLocation-inl.h |
|
3820 |
BytecodeLocation.cpp |
|
925 |
BytecodeLocation.h |
|
10786 |
BytecodeUtil-inl.h |
Add an extra pushed value for Or/And opcodes, so that they are included
in the pushed array of stack values for type inference.
|
7222 |
BytecodeUtil.cpp |
JS bytecode descriptors, disassemblers, and (expression) decompilers.
|
84118 |
BytecodeUtil.h |
JS bytecode definitions.
|
19770 |
Caches.h |
|
21233 |
CallAndConstruct.cpp |
|
5855 |
CallNonGenericMethod.cpp |
|
1070 |
CharacterEncoding.cpp |
nbytes sets 1 length since this is surrogate pair. |
30925 |
CheckIsObjectKind.h |
vm_CheckIsObjectKind_h |
735 |
CodeCoverage.cpp |
|
19143 |
CodeCoverage.h |
|
5269 |
CommonPropertyNames.h |
A higher-order macro for enumerating all cached property names. |
54862 |
Compartment-inl.h |
Only GC things have to be wrapped or copied. |
14358 |
Compartment.cpp |
Directly allocate the copy in the destination compartment, rather than
first flattening it (and possibly allocating in source compartment),
because we don't know whether the flattening will pay off later.
|
19901 |
Compartment.h |
|
17612 |
CompilationAndEvaluation.cpp |
Same-thread compilation and evaluation APIs. |
20838 |
CompletionKind.h |
|
509 |
Compression.cpp |
|
7694 |
Compression.h |
Compress some of the input. Return true if it should be called again. |
3943 |
ConcurrentDelazification.cpp |
|
11064 |
ConcurrentDelazification.h |
|
6079 |
DateObject.h |
Cached slots holding local properties of the date.
These are undefined until the first actual lookup occurs
and are reset to undefined whenever the date's time is modified.
- LOCAL_TIME_SLOT is either a Double or Undefined.
- The remaining slots store either Int32, NaN, or Undefined values.
|
5469 |
DateTime.cpp |
!defined(XP_WIN) |
27150 |
DateTime.h |
21.4.1.2 Time-related Constants
ES2025 draft rev 76814cbd5d7842c2a99d28e6e8c7833f1de5bee0
|
16054 |
DisposableRecord-inl.h |
static |
1205 |
DisposableRecord.cpp |
static |
1347 |
DisposableRecord.h |
Explicit Resource Management Proposal
DisposableResource Records
https://arai-a.github.io/ecma262-compare/?pr=3000&id=sec-disposableresource-records
|
1576 |
EnvironmentObject-inl.h |
namespace js |
2858 |
EnvironmentObject.cpp |
/
/*
Return a shape representing the static scope containing the variable
accessed by the ALIASEDVAR op at 'pc'.
|
150884 |
EnvironmentObject.h |
Environment objects *************************************************** |
62437 |
EqualityOperations.cpp |
|
11074 |
EqualityOperations.h |
The equality comparisons of js/Equality.h, but with extra efficiency for
SpiderMonkey-internal callers.
These functions, assuming they're passed C++-valid arguments, are identical
to the same-named JS::-namespaced functions -- just with hidden linkage (so
they're more efficient to call), and without various external-caller-focused
JSAPI-usage assertions performed that SpiderMonkey users never come close to
failing.
|
2587 |
ErrorMessages.cpp |
SpiderMonkey-internal error-reporting formatting functionality. |
995 |
ErrorObject-inl.h |
vm_ErrorObject_inl_h |
1812 |
ErrorObject.cpp |
|
31036 |
ErrorObject.h |
Assign the initial error shape to the empty object. (This shape does
*not* include .message, which must be added separately if needed; see
ErrorObject::init.)
|
6197 |
ErrorReporting.cpp |
|
21282 |
ErrorReporting.h |
Use this type instead of JSContext when the object is only used for its
ability to allocate memory (via its MallocProvider methods).
|
8435 |
Exception.cpp |
|
1879 |
Float16.h |
|
10819 |
ForOfIterator.cpp |
|
5838 |
FrameIter-inl.h |
|
1934 |
FrameIter.cpp |
|
28224 |
FrameIter.h |
|
17606 |
FunctionFlags.cpp |
|
688 |
FunctionFlags.h |
|
16262 |
FunctionPrefixKind.h |
vm_FunctionPrefixKind_h |
553 |
GeckoProfiler-inl.h |
This class is used to suppress profiler sampling during
critical sections where stack state is not valid.
|
4273 |
GeckoProfiler.cpp |
Ensure all future generated code will be instrumented, or that all
currently instrumented code is discarded
|
18257 |
GeckoProfiler.h |
|
10231 |
GeneratorAndAsyncKind.h |
namespace js |
601 |
GeneratorObject.cpp |
|
17983 |
GeneratorObject.h |
|
8386 |
GeneratorResumeKind.h |
vm_GeneratorResumeKind_h |
562 |
GetterSetter.cpp |
|
934 |
GetterSetter.h |
|
3983 |
GlobalObject-inl.h |
static |
1011 |
GlobalObject.cpp |
static |
38620 |
GlobalObject.h |
|
44348 |
GuardFuse.h |
|
3958 |
HelperThreads.cpp |
|
60974 |
HelperThreads.h |
API for managing off-thread work.
|
9432 |
HelperThreadState.h |
Definitions for managing off-thread work using a process wide list of
worklist items and pool of threads. Worklist items are engine internal, and
are distinct from e.g. web workers.
|
26383 |
HelperThreadTask.h |
vm_HelperThreadTask_h |
2445 |
Id.cpp |
static |
3250 |
Initialization.cpp |
SpiderMonkey initialization and shutdown code. |
9806 |
InlineCharBuffer-inl.h |
|
5422 |
InternalThreadPool.cpp |
The profiling thread for this helper thread, which can be used to push
and pop label frames.
This field being non-null indicates that this thread has been registered
and needs to be unregistered at shutdown.
|
9905 |
InternalThreadPool.h |
An internal thread pool, used for the shell and when
JS::SetHelperThreadTaskCallback not called.
|
2218 |
Interpreter-inl.h |
Per ES6, lexical declarations may not be accessed in any fashion until they
are initialized (i.e., until the actual declaring statement is
executed). The various LEXICAL opcodes need to check if the slot is an
uninitialized let declaration, represented by the magic value
JS_UNINITIALIZED_LEXICAL.
|
30277 |
Interpreter.cpp |
JavaScript bytecode interpreter.
|
172355 |
Interpreter.h |
JS interpreter interface.
|
27966 |
InvalidatingFuse.cpp |
|
4255 |
InvalidatingFuse.h |
|
3076 |
IsGivenTypeObject-inl.h |
|
949 |
Iteration.cpp |
JavaScript iterators. |
73747 |
Iteration.h |
JavaScript iterators.
|
27955 |
Iterator.cpp |
|
3396 |
JitActivation.cpp |
|
9316 |
JitActivation.h |
|
9971 |
JSAtomState.h |
Various built-in or commonly-used names pinned on first context. |
2139 |
JSAtomUtils-inl.h |
Write out character representing |index| to the memory just before |end|.
Thus |*end| is not touched, but |end[-1]| and earlier are modified as
appropriate. There must be at least js::UINT32_CHAR_BUFFER_LENGTH elements
before |end| to avoid buffer underflow. The start of the characters written
is returned and is necessarily before |end|.
|
4498 |
JSAtomUtils.cpp |
JS atom table.
|
33691 |
JSAtomUtils.h |
Return a printable, lossless char[] representation of a string-type atom.
The returned string is guaranteed to contain only ASCII characters.
|
3347 |
JSContext-inl.h |
Set a breakpoint here (break js::ContextChecks::fail) to debug
realm/compartment/zone mismatches.
|
9756 |
JSContext.cpp |
JS execution context.
|
43010 |
JSContext.h |
JS execution context. |
40747 |
JSFunction-inl.h |
namespace js |
4716 |
JSFunction.cpp |
JS function support.
|
62380 |
JSFunction.h |
JS function definitions.
|
35656 |
JSObject-inl.h |
static |
22338 |
JSObject.cpp |
JS object implementation.
|
112446 |
JSObject.h |
/
class GlobalObject;
class NativeObject;
class WithEnvironmentObject;
enum class IntegrityLevel { Sealed, Frozen };
/*
The NewObjectKind allows an allocation site to specify the lifetime
requirements that must be fixed at allocation time.
|
39768 |
JSONParser.cpp |
|
46841 |
JSONParser.h |
|
22882 |
JSONPrinter.cpp |
|
6152 |
JSONPrinter.h |
vm_JSONPrinter_h |
2795 |
jsopcode.py |
|
11578 |
JSScript-inl.h |
A JSScript always marks its realm's global so we can assert it's non-null
here. We don't need a read barrier here for the same reason
JSObject::nonCCWGlobal doesn't need one.
|
7811 |
JSScript.cpp |
JS script operations.
|
119748 |
JSScript.h |
JS script descriptor. |
80315 |
List-inl.h |
static |
3606 |
List.cpp |
|
426 |
List.h |
The List specification type, ECMA-262 6.2.1.
<https://tc39.github.io/ecma262/#sec-list-and-record-specification-type>
Lists are simple mutable sequences of values. Many standards use them.
Abstractly, they're not objects; they don't have properties or prototypes;
they're for internal specification use only. ListObject is our most direct
implementation of a List: store the values in the slots of a JSObject.
We often implement Lists in other ways. For example, builtin/Utilities.js
contains a completely unrelated List constructor that's used in self-hosted
code. And AsyncGeneratorObject optimizes away the ListObject in the common
case where its internal queue never holds more than one element.
ListObjects must not be exposed to content scripts.
|
3013 |
Logging.cpp |
static |
648 |
Logging.h |
A predefined log module for casual debugging |
3817 |
make_opcode_doc.py |
Usage: python make_opcode_doc.py
This script generates SpiderMonkey bytecode documentation
from js/src/vm/Opcodes.h.
Output is written to stdout and should be pasted into the following
MDN page:
https://developer.mozilla.org/en-US/docs/SpiderMonkey/Internals/Bytecode
|
5538 |
MallocProvider.h |
Hierarchy of SpiderMonkey system memory allocators:
- System {m,c,re}alloc/new/free: Overridden by jemalloc in most
environments. Do not use these functions directly.
- js_{m,c,re}alloc/new/free: Wraps the system allocators and adds a
failure injection framework for use by the fuzzers as well as templated,
typesafe variants. See js/public/Utility.h.
- AllocPolicy: An interface for the js allocators, for use with templates.
These allocators are for system memory whose lifetime is not associated
with a GC thing. See js/public/AllocPolicy.h.
- SystemAllocPolicy: No extra functionality over bare allocators.
- TempAllocPolicy: Adds automatic error reporting to the provided
JSContext when allocations fail.
- ZoneAllocPolicy: Forwards to the Zone MallocProvider.
- MallocProvider. A mixin base class that handles automatically updating
the GC's state in response to allocations that are tied to a GC lifetime
or are for a particular GC purpose. These allocators must only be used
for memory that will be freed when a GC thing is swept.
- gc::Zone: Automatically triggers zone GC.
- JSRuntime: Automatically triggers full GC.
- JSContext: Dispatches directly to the runtime.
|
8098 |
MatchPairs.h |
RegExp match results are succinctly represented by pairs of integer
indices delimiting (start, limit] segments of the input string.
The pair count for a given RegExp match is the capturing parentheses
count plus one for the "0 capturing paren" whole text match.
|
3789 |
MemoryMetrics.cpp |
static |
29494 |
ModuleBuilder.h |
|
4821 |
Modules.cpp |
JavaScript modules (as in, the syntactic construct) implementation. |
78026 |
Modules.h |
|
1856 |
Monitor.h |
vm_Monitor_h |
1556 |
MutexIDs.h |
|
3045 |
NativeObject-inl.h |
|
28413 |
NativeObject.cpp |
Objects with no elements share one empty set of elements. |
102331 |
NativeObject.h |
To really poison a set of values, using 'magic' or 'undefined' isn't good
enough since often these will just be ignored by buggy code (see bug 629974)
in debug builds and crash in release builds. Instead, we use a safe-for-crash
pointer.
|
73413 |
NumberObject-inl.h |
= nullptr |
816 |
NumberObject.h |
Stores this Number object's [[PrimitiveValue]]. |
1283 |
ObjectFlags-inl.h |
vm_ObjectFlags_inl_h |
3321 |
ObjectFlags.h |
vm_ObjectFlags_h |
3870 |
ObjectOperations-inl.h |
Fundamental operations on objects. |
13942 |
ObjectOperations.h |
Fundamental operations on objects. |
13185 |
OffThreadPromiseRuntimeState.cpp |
|
10457 |
OffThreadPromiseRuntimeState.h |
|
9601 |
Opcodes.h |
|
146442 |
PIC.cpp |
|
12857 |
PIC.h |
The basic PICStub just has a pointer to the next stub.
|
7903 |
PlainObject-inl.h |
static |
3383 |
PlainObject.cpp |
JS object implementation.
|
10708 |
PlainObject.h |
Return the allocKind we would use if we were to tenure this object. |
4358 |
PortableBaselineInterpret.cpp |
JavaScript "portable baseline interpreter": an interpreter that is
capable of running ICs, but without any native code.
See the [SMDOC] in vm/PortableBaselineInterpret.h for a high-level
overview.
|
332082 |
PortableBaselineInterpret.h |
|
17024 |
Prefs.cpp |
|
823 |
Printer.cpp |
|
15162 |
Probes-inl.h |
Many probe handlers are implemented inline for minimal performance impact,
especially important when no backends are enabled.
|
2362 |
Probes.cpp |
These functions call the DTrace macros for the JavaScript USDT probes.
Originally this code was inlined in the JavaScript code; however since
a number of operations are called, these have been placed into functions
to reduce any negative compiler optimization effect that the addition of
a number of usually unused lines of code would cause.
|
2208 |
Probes.h |
Static probes
The probe points defined in this file are scattered around the SpiderMonkey
source tree. The presence of probes::SomeEvent() means that someEvent is
about to happen or has happened. To the extent possible, probes should be
inserted in all paths associated with a given event, regardless of the
active runmode (interpreter/traceJIT/methodJIT/ionJIT).
When a probe fires, it is handled by any probe handling backends that have
been compiled in. By default, most probes do nothing or at least do nothing
expensive, so the presence of the probe should have negligible effect on
running time. (Probes in slow paths may do something by default, as long as
there is no noticeable slowdown.)
For some probes, the mere existence of the probe is too expensive even if it
does nothing when called. For example, just having consistent information
available for a function call entry/exit probe causes the JITs to
de-optimize function calls. In those cases, the JITs may query at compile
time whether a probe is desired, and omit the probe invocation if not. If a
probe is runtime-disabled at compilation time, it is not guaranteed to fire
within a compiled function if it is later enabled.
Not all backends handle all of the probes listed here.
|
4338 |
ProfilingStack.cpp |
|
1613 |
PromiseLookup.cpp |
|
9540 |
PromiseLookup.h |
A PromiseLookup holds the following:
Promise's shape (promiseConstructorShape_)
To ensure that Promise has not been modified.
Promise.prototype's shape (promiseProtoShape_)
To ensure that Promise.prototype has not been modified.
Promise's slot number for the @@species getter
(promiseSpeciesGetterSlot_)
To quickly retrieve the @@species getter for Promise.
Promise's slot number for resolve (promiseResolveSlot_)
To quickly retrieve the Promise.resolve function.
Promise.prototype's slot number for constructor (promiseProtoConstructorSlot_)
To quickly retrieve the Promise.prototype.constructor property.
Promise.prototype's slot number for then (promiseProtoThenSlot_)
To quickly retrieve the Promise.prototype.then function.
MOZ_INIT_OUTSIDE_CTOR fields below are set in |initialize()|. The
constructor only initializes a |state_| field, that defines whether the
other fields are accessible.
|
6019 |
PromiseObject.h |
|
9854 |
PropertyAndElement.cpp |
|
38890 |
PropertyDescriptor.cpp |
|
3352 |
PropertyInfo.h |
Limit on the number of slotful properties in an object. |
7272 |
PropertyKey.h |
vm_PropertyKey_h |
1732 |
PropertyResult.h |
vm_PropertyResult_h |
3198 |
PropMap-inl.h |
|
7507 |
PropMap.cpp |
prev = |
42667 |
PropMap.h |
|
41721 |
ProxyObject.cpp |
static |
6717 |
ProxyObject.h |
This is the base class for the various kinds of proxy objects. It's never
instantiated.
Proxy objects use their shape primarily to record flags. Property
information, &c. is all dynamically computed.
There is no class_ member to force specialization of JSObject::is<T>().
The implementation in JSObject is incorrect for proxies since it doesn't
take account of the handler type.
|
5764 |
Realm-inl.h |
static |
3373 |
Realm.cpp |
As a hack, we clear our timezone cache every time we create a new realm.
This ensures that the cache is always relatively fresh, but shouldn't
interfere with benchmarks that create tons of date objects (unless they
also create tons of iframes, which seems unlikely).
|
25694 |
Realm.h |
A single-entry cache for some base-10 double-to-string conversions. This
helps date-format-xparb.js. It also avoids skewing the results for
v8-splay.js when measured by the SunSpider harness, where the splay tree
initialization (which includes many repeated double-to-string conversions)
is erroneously included in the measurement; see bug 562553.
|
33494 |
RealmFuses.cpp |
static |
7756 |
RealmFuses.h |
|
5734 |
RecordTupleShared.cpp |
|
3843 |
RecordTupleShared.h |
|
1102 |
RecordType.cpp |
|
14468 |
RecordType.h |
|
2380 |
RegExpObject.cpp |
= nullptr |
41281 |
RegExpObject.h |
JavaScript RegExp objects. |
8032 |
RegExpShared.h |
The compiled representation of a RegExp, potentially shared among RegExp
instances created during separate evaluations of a single RegExp literal in
source code.
|
17376 |
RegExpStatics.cpp |
Retrieve or create the RegExpShared in this zone. |
1746 |
RegExpStatics.h |
The latest RegExp output, set after execution. |
8843 |
Runtime.cpp |
static |
26567 |
Runtime.h |
namespace js |
40176 |
SavedFrame.h |
|
10118 |
SavedStacks-inl.h |
|
1271 |
SavedStacks.cpp |
Maximum number of saved frames returned for an async stack.
|
73378 |
SavedStacks.h |
|
15098 |
Scope.cpp |
|
61147 |
Scope.h |
|
60528 |
ScopeKind.h |
|
889 |
SelfHosting.cpp |
|
109071 |
SelfHosting.h |
|
11022 |
Shape-inl.h |
static |
3200 |
Shape.cpp |
static |
53112 |
Shape.h |
|
32774 |
ShapeZone.cpp |
JS symbol tables. |
4589 |
ShapeZone.h |
|
8436 |
SharedArrayObject.cpp |
|
29772 |
SharedArrayObject.h |
SharedArrayRawBuffer
A bookkeeping object always stored before the raw buffer. The buffer itself
is refcounted. SharedArrayBufferObjects and structured clone objects may hold
references.
WasmSharedArrayRawBuffer is a derived class that's used for Wasm buffers.
- Non-Wasm buffers are allocated with a single calloc allocation, like this:
|<------ sizeof ------>|<- length ->|
| SharedArrayRawBuffer | data array |
- Wasm buffers are allocated with MapBufferMemory (mmap), like this:
|<-------- sizeof -------->|<- length ->|
| waste | WasmSharedArrayRawBuffer | data array | waste |
Observe that if we want to map the data array on a specific address, such
as absolute zero (bug 1056027), then the {Wasm}SharedArrayRawBuffer cannot be
prefixed to the data array, it has to be a separate object, also in
shared memory. (That would get rid of ~4KB of waste, as well.) Very little
else would have to change throughout the engine, the SARB would point to
the data array using a constant pointer, instead of computing its
address.
For Wasm buffers, length_ can change following initialization; it may grow
toward sourceMaxPages_. See extensive comments above WasmArrayRawBuffer in
ArrayBufferObject.cpp. length_ only grows when the lock is held.
|
16201 |
SharedImmutableStringsCache-inl.h |
|
2667 |
SharedImmutableStringsCache.cpp |
static |
4119 |
SharedImmutableStringsCache.h |
The `SharedImmutableStringsCache` allows safely sharing and deduplicating
immutable strings (either `const char*` [any encoding, not restricted to
only Latin-1 or only UTF-8] or `const char16_t*`) between threads.
The locking mechanism is dead-simple and coarse grained: a single lock guards
all of the internal table itself, the table's entries, and the entries'
reference counts. It is only safe to perform any mutation on the cache or any
data stored within the cache when this lock is acquired.
|
13750 |
SharedMem.h |
|
4993 |
SharedScriptDataTableHolder.cpp |
|
751 |
SharedScriptDataTableHolder.h |
namespace js |
2753 |
SharedStencil.h |
Exception handling record.
|
34717 |
SourceHook.cpp |
|
903 |
Stack-inl.h |
Initialize stack frame members. |
24972 |
Stack.cpp |
|
24788 |
Stack.h |
/
namespace js {
namespace jit {
class BaselineFrame;
class RematerializedFrame;
} // namespace jit
/**
Pointer to a live JS or WASM stack frame.
|
33654 |
StaticStrings.cpp |
|
2803 |
StaticStrings.h |
We keep these public for the JITs. |
8733 |
StencilCache.cpp |
static |
2147 |
StencilCache.h |
namespace frontend |
7720 |
StencilEnums.h |
|
13149 |
StencilObject.cpp |
static |
5090 |
StencilObject.h |
namespace js |
2013 |
StringObject-inl.h |
static |
1629 |
StringObject.h |
Creates a new String object boxing the given string. The object's
[[Prototype]] is determined from context.
|
2231 |
StringType-inl.h |
Don't bother trying to find a static atom; measurement shows that not
many get here (for one, Atomize is catching them).
|
27653 |
StringType.cpp |
|
97406 |
StringType.h |
The buffer length required to contain any unsigned 32-bit integer. |
88432 |
StructuredClone.cpp |
This file implements the structured data algorithms of
https://html.spec.whatwg.org/multipage/structured-data.html
The spec is in two parts:
- StructuredSerialize examines a JS value and produces a graph of Records.
- StructuredDeserialize walks the Records and produces a new JS value.
The differences between our implementation and the spec are minor:
- We call the two phases "write" and "read".
- Our algorithms use an explicit work stack, rather than recursion.
- Serialized data is a flat array of bytes, not a (possibly cyclic) graph
of "Records".
- As a consequence, we handle non-treelike object graphs differently.
We serialize objects that appear in multiple places in the input as
backreferences, using sequential integer indexes.
See `JSStructuredCloneReader::allObjs`, our take on the "memory" map
in the spec's StructuredDeserialize.
|
137474 |
SymbolType.cpp |
|
5793 |
SymbolType.h |
namespace js |
5541 |
TaggedProto.cpp |
static |
1235 |
TaggedProto.h |
Skip nullptr and LazyProto. |
5214 |
ThrowMsgKind.cpp |
|
1471 |
ThrowMsgKind.h |
vm_ThrowMsgKind_h |
1035 |
Time.cpp |
PR time code. |
6666 |
Time.h |
Broken down form of 64 bit time value.
|
5043 |
ToSource.cpp |
Convert a JSString to its source expression; returns null after reporting an
error, otherwise returns a new string reference. No Handle needed since the
input is dead after the GC.
|
7462 |
ToSource.h |
|
817 |
TupleType.cpp |
Step 1. |
17975 |
TupleType.h |
|
3061 |
TypedArrayObject-inl.h |
Utilities and common inline code for TypedArray |
25179 |
TypedArrayObject.cpp |
TypedArrayObject
The non-templated base class for the specific typed implementations.
This class holds all the member variables that are used by
the subclasses.
|
154075 |
TypedArrayObject.h |
TypedArrayObject
The non-templated base class for the specific typed implementations.
This class holds all the member variables that are used by
the subclasses.
|
12126 |
TypeofEqOperand.h |
|
1422 |
UbiNode.cpp |
|
16030 |
UbiNodeCensus.cpp |
Count Types *********************************************************** |
41279 |
UbiNodeShortestPaths.cpp |
= 10 |
2566 |
Uint8Clamped.h |
constexpr |
5359 |
UsageStatistics.cpp |
|
798 |
UsingHint.h |
vm_UsingHint_h |
731 |
Value.cpp |
|
7956 |
Warnings.cpp |
|
3187 |
Warnings.h |
vm_Warnings_h |
839 |
Watchtower.cpp |
|
13594 |
Watchtower.h |
|
5647 |
WellKnownAtom.cpp |
|
1015 |
WellKnownAtom.h |
namespace js |
1579 |
WindowProxy.cpp |
WindowProxy and Window implementation, for the web browser embedding. |
2266 |
WrapperObject.h |
vm_WrapperObject_h |
1075 |
Xdr.cpp |
|
5353 |
Xdr.h |
|
12252 |