Name Description Size Coverage
Activation-inl.h static 3950 97 %
Activation.cpp 908 100 %
Activation.h 22359 97 %
ArgumentsObject-inl.h namespace js 1558 100 %
ArgumentsObject.cpp static 38534 94 %
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). 20497 98 %
ArrayBufferObject-inl.h 2227 100 %
ArrayBufferObject.cpp 138781 85 %
ArrayBufferObject.h 41050 98 %
ArrayBufferObjectMaybeShared.cpp 3155 75 %
ArrayBufferViewObject.cpp static 22372 86 %
ArrayBufferViewObject.h ArrayBufferViewObject Common base class for all array buffer views (DataViewObject and TypedArrayObject). 9861 94 %
ArrayObject-inl.h static 2739 95 %
ArrayObject.h 3080 100 %
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. 12938 92 %
AsyncFunction.h 12378 100 %
AsyncIteration.cpp static 67291 77 %
AsyncIteration.h 20890 100 %
AtomsTable.h Implementation details of the atoms table. 5790 100 %
BigIntType.cpp 125338 88 %
BigIntType.h 21885 98 %
BindingKind.h 2899 100 %
BooleanObject-inl.h = nullptr 670 86 %
BooleanObject.h Stores this Boolean object's [[PrimitiveValue]]. 1189 100 %
BoundFunctionObject.cpp 16993 93 %
BoundFunctionObject.h 5993 100 %
BuildId.cpp SpiderMonkey buildId-related functionality. 891 100 %
BuiltinObjectKind.cpp 3965 69 %
BuiltinObjectKind.h Built-in objects used by the GetBuiltinConstructor and GetBuiltinPrototype self-hosted intrinsics. 1758 -
BytecodeFormatFlags.h [SMDOC] Bytecode Format flags (JOF_*) 2804 -
BytecodeIterator-inl.h 955 100 %
BytecodeIterator.h 2190 100 %
BytecodeLocation-inl.h 3705 100 %
BytecodeLocation.cpp 810 -
BytecodeLocation.h 10657 100 %
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. 7872 97 %
BytecodeUtil.cpp JS bytecode descriptors, disassemblers, and (expression) decompilers. 85005 88 %
BytecodeUtil.h JS bytecode definitions. 19774 99 %
Caches.h 20826 94 %
CallAndConstruct.cpp 5738 67 %
CallNonGenericMethod.cpp 1031 100 %
CharacterEncoding.cpp nbytes sets 1 length since this is surrogate pair. 29239 79 %
CheckIsObjectKind.h vm_CheckIsObjectKind_h 620 -
CodeCoverage.cpp 19007 91 %
CodeCoverage.h 5159 100 %
CommonPropertyNames.h A higher-order macro for enumerating all cached property names. 46146 -
Compartment-inl.h Only GC things have to be wrapped or copied. 11984 94 %
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. 19299 92 %
Compartment.h 17432 98 %
CompilationAndEvaluation.cpp Same-thread compilation and evaluation APIs. 22683 68 %
CompletionKind.h 702 -
Compression.cpp 8446 94 %
Compression.h Compress some of the input. Return true if it should be called again. 4367 100 %
ConcurrentDelazification.cpp 9725 0 %
ConcurrentDelazification.h 6152 0 %
ConstantCompareOperand.h Simple struct for encoding comparison operations with parse-time constant values, presently used with the |StrictConstantEq| and |StrictConstantNe| opcodes. The operand encodes the type of the constant and its payload. The type is encoded in the high-byte and the payload in the low-byte of a 16-bit word. TODO (Bug 1958722): Investigate if larger payloads can be supported in the empty bits of the type. 2731 100 %
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. 4944 100 %
DateTime.cpp !defined(XP_WIN) 28131 80 %
DateTime.h 21.4.1.2 Time-related Constants ES2025 draft rev 76814cbd5d7842c2a99d28e6e8c7833f1de5bee0 17149 100 %
DisposableRecord-inl.h static 1090 83 %
DisposableRecord.cpp static 1226 82 %
DisposableRecord.h Explicit Resource Management Proposal DisposableResource Records https://arai-a.github.io/ecma262-compare/?pr=3000&id=sec-disposableresource-records 1461 -
DOMEventDispatch.cpp 1913 16 %
EnvironmentObject-inl.h namespace js 2743 94 %
EnvironmentObject.cpp / /* Return a shape representing the static scope containing the variable accessed by the ALIASEDVAR op at 'pc'. 158537 87 %
EnvironmentObject.h Environment objects *************************************************** 66819 99 %
EqualityOperations.cpp 10243 98 %
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. 2294 100 %
ErrorMessages.cpp SpiderMonkey-internal error-reporting formatting functionality. 888 80 %
ErrorObject-inl.h vm_ErrorObject_inl_h 1697 96 %
ErrorObject.cpp 63560 86 %
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.) 10869 98 %
ErrorReporting.cpp 21244 79 %
ErrorReporting.h Use this type instead of JSContext when the object is only used for its ability to allocate memory (via its MallocProvider methods). 8320 100 %
Exception.cpp 1764 93 %
Float16.h 11330 100 %
ForOfIterator.cpp 4533 99 %
FrameIter-inl.h 1819 78 %
FrameIter.cpp 28172 88 %
FrameIter.h 17560 99 %
FunctionFlags.cpp 573 -
FunctionFlags.h 16235 100 %
FunctionPrefixKind.h vm_FunctionPrefixKind_h 438 -
GeckoProfiler-inl.h This class is used to suppress profiler sampling during critical sections where stack state is not valid. 4158 100 %
GeckoProfiler.cpp Ensure all future generated code will be instrumented, or that all currently instrumented code is discarded 27248 90 %
GeckoProfiler.h 12319 80 %
GeneratorAndAsyncKind.h namespace js 486 -
GeneratorObject.cpp 17974 91 %
GeneratorObject.h 8880 100 %
GeneratorResumeKind.h vm_GeneratorResumeKind_h 447 -
GetterSetter.cpp 1124 86 %
GetterSetter.h 4117 100 %
GlobalObject-inl.h static 896 100 %
GlobalObject.cpp static 37048 88 %
GlobalObject.h 43399 92 %
GuardFuse.h 3816 84 %
HelperThreads.cpp 67875 73 %
HelperThreads.h API for managing off-thread work. 10667 92 %
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. 26443 77 %
HelperThreadTask.h vm_HelperThreadTask_h 2489 100 %
Id.cpp static 3135 58 %
Initialization.cpp SpiderMonkey initialization and shutdown code. 9622 95 %
Int128.cpp 6779 86 %
Int128.h Unsigned 128-bit integer, implemented as a pair of unsigned 64-bit integers. Supports all basic arithmetic operators. 22898 59 %
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. 9798 83 %
InternalThreadPool.h An internal thread pool, used for the shell and when JS::SetHelperThreadTaskCallback not called. 2103 100 %
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. 30272 97 %
Interpreter.cpp JavaScript bytecode interpreter. 169247 94 %
Interpreter.h JS interpreter interface. 28215 100 %
InvalidatingFuse.cpp 4487 95 %
InvalidatingFuse.h 2852 100 %
IsGivenTypeObject-inl.h 834 88 %
Iteration.cpp JavaScript iterators. 79392 91 %
Iteration.h JavaScript iterators. 28575 100 %
Iterator.cpp 3274 96 %
JitActivation.cpp 9785 94 %
JitActivation.h 10689 100 %
JSAtomState.h Various built-in or commonly-used names pinned on first context. 2023 100 %
JSAtomUtils-inl.h vm_JSAtomUtils_inl_h 3714 87 %
JSAtomUtils.cpp JS atom table. 33235 88 %
JSAtomUtils.h Return a printable, lossless char[] representation of a string-type atom. The returned string is guaranteed to contain only ASCII characters. 3414 100 %
JSContext-inl.h Set a breakpoint here (break js::ContextChecks::fail) to debug realm/compartment/zone mismatches. 10557 92 %
JSContext.cpp JS execution context. 50176 84 %
JSContext.h JS execution context. 44387 96 %
JSFunction-inl.h namespace js 4670 95 %
JSFunction.cpp JS function support. 65406 90 %
JSFunction.h JS function definitions. 35873 99 %
JSObject-inl.h static 21539 100 %
JSObject.cpp JS object implementation. 110346 90 %
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. 40171 99 %
JSONParser.cpp 46903 87 %
JSONParser.h 22713 81 %
JSONPrinter.cpp 6011 52 %
JSONPrinter.h vm_JSONPrinter_h 2680 100 %
jsopcode.py 10593 -
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. 7802 98 %
JSScript.cpp JS script operations. 126049 80 %
JSScript.h JS script descriptor. 85581 88 %
List-inl.h static 1482 96 %
List.cpp 305 -
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. 2161 100 %
Logging.cpp static 533 100 %
Logging.h A predefined log module for casual debugging 4953 87 %
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 5288 -
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. 7983 61 %
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. 3700 100 %
MemoryMetrics.cpp static 28780 87 %
ModuleBuilder.h 4625 100 %
Modules.cpp JavaScript modules (as in, the syntactic construct) implementation. 116924 86 %
Modules.h 2806 100 %
Monitor.h vm_Monitor_h 1441 100 %
moz.build 4395 -
MutexIDs.h 3003 -
NativeObject-inl.h 28370 98 %
NativeObject.cpp Objects with no elements share one empty set of elements. 102498 94 %
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. 74938 98 %
NumberObject-inl.h = nullptr 701 86 %
NumberObject.h Stores this Number object's [[PrimitiveValue]]. 1168 100 %
ObjectFlags-inl.h vm_ObjectFlags_inl_h 3206 84 %
ObjectFlags.h vm_ObjectFlags_h 4483 -
ObjectFuse.cpp 7503 93 %
ObjectFuse.h 10812 100 %
ObjectOperations-inl.h Fundamental operations on objects. 13453 98 %
ObjectOperations.h Fundamental operations on objects. 13070 100 %
ObjectWithStashedPointer.cpp 2303 0 %
OffThreadPromiseRuntimeState.cpp 21003 87 %
OffThreadPromiseRuntimeState.h 17591 76 %
Opcodes.h 145851 -
PlainObject-inl.h static 3264 100 %
PlainObject.cpp JS object implementation. 10593 94 %
PlainObject.h Return the allocKind we would use if we were to tenure this object. 4243 100 %
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. 329957 -
PortableBaselineInterpret.h 16858 -
Prefs.cpp 708 -
Printer.cpp 19845 84 %
Probes-inl.h Many probe handlers are implemented inline for minimal performance impact, especially important when no backends are enabled. 1160 93 %
Probes.cpp 292 -
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. 2511 100 %
ProfilingStack.cpp 1498 100 %
PromiseObject.h 9763 100 %
PropertyAndElement.cpp 38773 67 %
PropertyDescriptor.cpp 3237 56 %
PropertyInfo.h Limit on the number of slotful properties in an object. 7157 100 %
PropertyKey.h vm_PropertyKey_h 1954 96 %
PropertyResult.h vm_PropertyResult_h 3083 100 %
PropMap-inl.h 7390 98 %
PropMap.cpp prev = 43034 95 %
PropMap.h 43030 99 %
ProxyObject.cpp static 6793 98 %
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. 5649 100 %
Realm-inl.h static 3258 100 %
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). 27810 89 %
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. 35027 99 %
RealmFuses.cpp 22589 86 %
RealmFuses.h 16330 25 %
RecordTupleShared.h 987 -
RegExpObject.cpp RegExpAlloc ( newTarget ) https://github.com/tc39/proposal-regexp-legacy-features?tab=readme-ov-file 41290 78 %
RegExpObject.h JavaScript RegExp objects. 9294 99 %
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. 15674 98 %
RegExpStatics.cpp Retrieve or create the RegExpShared in this zone. 1631 92 %
RegExpStatics.h The latest RegExp output, set after execution. 9607 76 %
Runtime.cpp static 26489 94 %
Runtime.h namespace js 39519 96 %
RuntimeFuses.cpp 2358 58 %
RuntimeFuses.h 3241 71 %
SavedFrame.h 10566 41 %
SavedStacks-inl.h 1156 100 %
SavedStacks.cpp Maximum number of saved frames returned for an async stack. 75042 91 %
SavedStacks.h 15077 100 %
Scope.cpp 60002 81 %
Scope.h 60143 96 %
ScopeKind.h 774 -
SelfHosting.cpp 86198 85 %
SelfHosting.h 10849 -
Shape-inl.h static 3222 92 %
Shape.cpp static 57223 89 %
Shape.h 32697 100 %
ShapeZone.cpp JS symbol tables. 4621 100 %
ShapeZone.h 8878 100 %
SharedArrayObject.cpp 37349 79 %
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. 16959 92 %
SharedImmutableStringsCache-inl.h 2552 90 %
SharedImmutableStringsCache.cpp static 4004 80 %
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. 13646 100 %
SharedMem.h 5007 100 %
SharedScriptDataTableHolder.cpp 636 100 %
SharedScriptDataTableHolder.h namespace js 2638 100 %
SharedStencil.h Exception handling record. 34602 99 %
SourceHook.cpp 788 100 %
Stack-inl.h Initialize stack frame members. 25009 98 %
Stack.cpp 25236 97 %
Stack.h / namespace js { namespace jit { class BaselineFrame; class RematerializedFrame; } // namespace jit /** Pointer to a live JS or WASM stack frame. 33539 99 %
StaticStrings.cpp 2688 93 %
StaticStrings.h We keep these public for the JITs. 8618 92 %
StencilEnums.h 13034 -
StencilObject.cpp static 4835 91 %
StencilObject.h namespace js 1898 -
StringFlags.h JSString Flag Encoding If LATIN1_CHARS_BIT is set, the string's characters are stored as Latin1 instead of TwoByte. This flag can also be set for ropes, if both the left and right nodes are Latin1. Flattening will result in a Latin1 string in this case. When we flatten a TwoByte rope, we turn child ropes (including Latin1 ropes) into TwoByte dependent strings. If one of these strings is also part of another Latin1 rope tree, we can have a Latin1 rope with a TwoByte descendent. The other flags store the string's type. Instead of using a dense index to represent the most-derived type, string types are encoded to allow single-op tests for hot queries (isRope, isDependent, isAtom) which, in view of subtyping, would require slower (isX() || isY() || isZ()). The string type encoding can be summarized as follows. The "instance encoding" entry for a type specifies the flag bits used to create a string instance of that type. Abstract types have no instances and thus have no such entry. The "subtype predicate" entry for a type specifies the predicate used to query whether a JSString instance is subtype (reflexively) of that type. String Instance Subtype type encoding predicate ----------------------------------------- Rope 0000000 000 xxxxx0x xxx Linear 0000010 000 xxxxx1x xxx Dependent 0000110 000 xxxx1xx xxx AtomRef 1000110 000 1xxxxxx xxx External 0100010 000 x100010 xxx Extensible 0010010 000 x010010 xxx Inline 0001010 000 xxx1xxx xxx FatInline 0011010 000 xx11xxx xxx JSAtom - xxxxxx1 xxx NormalAtom 0000011 000 xxx0xx1 xxx PermanentAtom 0100011 000 x1xxxx1 xxx ThinInlineAtom 0001011 000 xx01xx1 xxx FatInlineAtom 0011011 000 xx11xx1 xxx ||||||| ||| ||||||| ||\- [0] reserved (FORWARD_BIT) ||||||| |\-- [1] reserved ||||||| \--- [2] reserved ||||||\----- [3] IsAtom |||||\------ [4] IsLinear ||||\------- [5] IsDependent |||\-------- [6] IsInline ||\--------- [7] FatInlineAtom/Extensible |\---------- [8] External/Permanent \----------- [9] AtomRef Bits 0..2 are reserved for use by the GC (see gc::CellFlagBitsReservedForGC). In particular, bit 0 is currently used for FORWARD_BIT for forwarded nursery cells. The other 2 bits are currently unused. Note that the first 4 flag bits 3..6 (from right to left in the previous table) have the following meaning and can be used for some hot queries: Bit 3: IsAtom (Atom, PermanentAtom) Bit 4: IsLinear Bit 5: IsDependent Bit 6: IsInline (Inline, FatInline, ThinInlineAtom, FatInlineAtom) If INDEX_VALUE_BIT is set, bits 16 and up will also hold an integer index. 13602 100 %
StringObject-inl.h static 1514 84 %
StringObject.h Creates a new String object boxing the given string. The object's [[Prototype]] is determined from context. 2116 100 %
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). 29683 94 %
StringType.cpp 109059 77 %
StringType.h The buffer length required to contain any unsigned 32-bit integer. 86354 96 %
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. 144469 83 %
SymbolType.cpp 5678 86 %
SymbolType.h namespace js 5464 100 %
TaggedProto.cpp static 1120 54 %
TaggedProto.h Skip nullptr and LazyProto. 5099 97 %
ThrowMsgKind.cpp 1356 86 %
ThrowMsgKind.h vm_ThrowMsgKind_h 920 -
Time.cpp PR time code. 6470 100 %
Time.h Broken down form of 64 bit time value. 1986 100 %
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. 7263 85 %
ToSource.h 702 -
TypedArrayObject-inl.h Utilities and common inline code for TypedArray 24370 93 %
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. 248712 88 %
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. 16608 94 %
TypeofEqOperand.h 1307 100 %
UbiNode.cpp 15849 84 %
UbiNodeCensus.cpp Count Types *********************************************************** 41112 88 %
UbiNodeShortestPaths.cpp = 10 2423 83 %
Uint8Clamped.h std::log10(2) 4859 100 %
UsageStatistics.cpp 683 100 %
UsingHint.h vm_UsingHint_h 616 -
Value.cpp 7369 0 %
Warnings.cpp 3072 61 %
Warnings.h vm_Warnings_h 724 -
Watchtower.cpp 27212 93 %
Watchtower.h 7149 100 %
WellKnownAtom.cpp 900 -
WellKnownAtom.h namespace js 1464 100 %
WindowProxy.cpp WindowProxy and Window implementation, for the web browser embedding. 2151 100 %
WrapperObject.h vm_WrapperObject_h 960 100 %
Xdr.cpp 5219 85 %
Xdr.h XDR serialization state. All data is encoded in native endian, except bytecode. 12137 79 %