Name Description Size Coverage
qv4argumentsobject.cpp 7252 -
qv4argumentsobject_p.h 2915 -
qv4arraybuffer.cpp 9094 -
qv4arraybuffer_p.h 5460 -
qv4arraydata.cpp 25526 -
qv4arraydata_p.h 11265 -
qv4arrayiterator.cpp 2526 -
qv4arrayiterator_p.h 1627 -
qv4arrayobject.cpp 52622 -
qv4arrayobject_p.h 6113 -
qv4atomics.cpp 8316 -
qv4atomics_p.h 2147 -
qv4booleanobject.cpp 2588 -
qv4booleanobject_p.h 1452 -
qv4compilationunitmapper.cpp 2139 -
qv4compilationunitmapper_p.h 1150 -
qv4compilationunitmapper_unix.cpp Error out early on file corruption. We assume we can read header.unitSize bytes later (even before verifying the checksum), potentially causing out-of-bound reads Also, no need to wait until checksum verification if we know beforehand that the cached unit is bogus 2807 -
qv4compilationunitmapper_win.cpp Error out early on file corruption. We assume we can read header.unitSize bytes later (even before verifying the checksum), potentially causing out-of-bound reads Also, no need to wait until checksum verification if we know beforehand that the cached unit is bogus 3624 -
qv4context.cpp 14956 -
qv4context_p.h 5249 -
qv4dataview.cpp 12567 -
qv4dataview_p.h 2775 -
qv4dateobject.cpp 56337 -
qv4dateobject_p.h 15416 -
qv4debugging.cpp 391 -
qv4debugging_p.h 1374 -
qv4domerrors.cpp 2721 -
qv4domerrors_p.h 1855 -
qv4engine.cpp 124885 -
qv4engine_p.h 40065 -
qv4enginebase_p.h 3774 -
qv4errorobject.cpp 10839 -
qv4errorobject_p.h 10566 -
qv4estable.cpp 4927 -
qv4estable_p.h 2229 -
qv4executableallocator.cpp 5769 -
qv4executableallocator_p.h 2521 -
qv4executablecompilationunit.cpp In general, we should use QV4::Scope whenever we allocate heap objects, and employ write barriers for member variables pointing to heap objects. However, ExecutableCompilationUnit is special, as it is always part of the root set. So instead of using scoped allocations and write barriers, we use a slightly different approach: We temporarily block the gc from running. Afterwards, at the end of the function we check whether the gc was already running, and mark the ExecutableCompilationUnit. This ensures that all the newly allocated objects of the compilation unit will be marked in turn. If the gc was not running, we don't have to do anything, because everything will be marked when the gc starts marking the root set at the start of a run. 24893 -
qv4executablecompilationunit_p.h 13027 -
qv4function.cpp 11873 -
qv4function_p.h 5082 -
qv4functionobject.cpp 28197 -
qv4functionobject_p.h 13773 -
qv4functiontable_noop.cpp 595 -
qv4functiontable_p.h 881 -
qv4functiontable_unix.cpp 2342 -
qv4functiontable_win64.cpp info == register number 3497 -
qv4generatorobject.cpp 10366 -
qv4generatorobject_p.h 3545 -
qv4global_p.h 7679 -
qv4globalobject.cpp 19334 -
qv4globalobject_p.h 2311 -
qv4identifierhash.cpp 3743 -
qv4identifierhash_p.h 2267 -
qv4identifierhashdata_p.h 2329 -
qv4identifiertable.cpp 7846 -
qv4identifiertable_p.h 2165 -
qv4include.cpp Documented in qv4engine.cpp 6450 -
qv4include_p.h 1819 -
qv4internalclass.cpp 25401 -
qv4internalclass_p.h 13909 -
qv4iterator.cpp 1033 -
qv4iterator_p.h 991 -
qv4jscall.cpp ! \internal Sets the arguments of JSCallData from type erased \a args based on type information provided by \a types 1499 -
qv4jscall_p.h 23084 -
qv4jsonobject.cpp begin-array = ws %x5B ws ; [ left square bracket begin-object = ws %x7B ws ; { left curly bracket end-array = ws %x5D ws ; ] right square bracket end-object = ws %x7D ws ; } right curly bracket name-separator = ws %x3A ws ; : colon value-separator = ws %x2C ws ; , comma Insignificant whitespace is allowed before or after any of the six structural characters. ws = *( %x20 / ; Space %x09 / ; Horizontal tab %x0A / ; Line feed or New line %x0D ; Carriage return ) 29353 -
qv4jsonobject_p.h 3004 -
qv4lookup.cpp 30026 -
qv4lookup_p.h 21564 -
qv4managed.cpp 3239 -
qv4managed_p.h 6859 -
qv4mapiterator.cpp 2491 -
qv4mapiterator_p.h 1563 -
qv4mapobject.cpp 13113 -
qv4mapobject_p.h 3701 -
qv4math_p.h 1895 -
qv4mathobject.cpp 15660 -
qv4mathobject_p.h 4819 -
qv4memberdata.cpp 1836 -
qv4memberdata_p.h 1533 -
qv4module.cpp 8122 -
qv4module_p.h 2041 -
qv4numberobject.cpp 10248 -
qv4numberobject_p.h 2583 -
qv4object.cpp 42277 -
qv4object_p.h 20625 -
qv4objectiterator.cpp 5005 -
qv4objectiterator_p.h 2735 -
qv4objectproto.cpp 29855 -
qv4objectproto_p.h 5230 -
qv4persistent.cpp 11909 -
qv4persistent_p.h 4818 -
qv4profiling.cpp 3595 -
qv4profiling_p.h 8092 -
qv4promiseobject.cpp 38690 -
qv4promiseobject_p.h 6906 -
qv4property_p.h 6368 -
qv4propertykey.cpp 2391 -
qv4propertykey_p.h 4097 -
qv4proxy.cpp 27737 -
qv4proxy_p.h The inheritance from FunctionObject is a hack. Regular proxy objects are no function objects. But this helps implement the proxy for function objects, where we need this and thus gives us all the virtual methods from ProxyObject without having to duplicate them. But it does require a few hacks to make sure we don't recognize regular proxy objects as function objects in the runtime. 3870 -
qv4qmetaobjectwrapper.cpp 3692 -
qv4qmetaobjectwrapper_p.h 3347 -
qv4qmlcontext.cpp 35681 -
qv4qmlcontext_p.h 4117 -
qv4qobjectwrapper.cpp ! \internal Called right before a QML-to-C++ method call is dispatched, but only when qt_v4NativeCallHookEnabled is set. An attached debugger can set a breakpoint here. \a receiverMeta is the meta object of the call receiver. 115511 -
qv4qobjectwrapper_p.h 17217 -
qv4referenceobject.cpp 25265 -
qv4referenceobject_p.h 7306 -
qv4reflect.cpp 9248 -
qv4reflect_p.h 2273 -
qv4regexp.cpp 8977 -
qv4regexp_p.h 4260 -
qv4regexpobject.cpp 35280 -
qv4regexpobject_p.h 7217 -
qv4resolvedtypereference.cpp ! \internal Returns the property cache, creating one if it doesn't already exist. The cache is not referenced. 2161 -
qv4resolvedtypereference_p.h 3453 -
qv4runtime.cpp 95170 -
qv4runtime_p.h 2836 -
qv4runtimeapi_p.h call 16531 -
qv4runtimecodegen.cpp 1481 -
qv4runtimecodegen_p.h 1229 -
qv4scopedvalue_p.h 10477 -
qv4script.cpp line 6241 -
qv4script_p.h 3211 -
qv4sequenceobject.cpp ! \class QV4::Sequence \internal A Sequence stores the contents of a sequential container and makes them acccessible to the JavaScript engine. It behaves mostly like a regular JavaScript array. The entries of the container are exposed as array elements. Sequence is a ReferenceObject. Therefore it writes back its contents to the property it was retrieved from whenever it changes. It also re-reads the property whenever that one changes. As long as a Sequence is attached to a property this way, it is the responsibility of the property's surrounding (C++) object to keep the contents valid. It has to, for example, track pointers to QObjects potentially deleted in other places so that they don't become dangling. However, the Sequence can also be detached. This happens predominantly by assigning it to a QML-declared property. In that case, it becomes the Sequence's responsibility to track its contents. To do so, it does not necessarily keep an actual instance of the original container in this case, but may rather stores its contents as actual JavaScript array elements. This includes QObjectWrappers for all QObject pointers it may contain. The contents are then marked like all JavaScript array elements when the garbage collector runs, and QObjectWrapper also guards against external deletion. There is no property to read or write back in this case, and neither does the internal container need to be updated. Therefore, the objects stored as array elements are created detached and won't read or write back. For element types that don't need to be marked, Sequence will still use the original container for storage, even in the detached case. This is usually more efficient because because it saves some data conversion. The only types that need to be marked are pointers to QObject-derived types, either stored as-is or hidden inside QVariant. Whenever the container cannot possibly hold such elements (directly or indirectly), the original container is used. 40698 -
qv4sequenceobject_p.h 7032 -
qv4setiterator.cpp 2363 -
qv4setiterator_p.h 1562 -
qv4setobject.cpp 10870 -
qv4setobject_p.h 3412 -
qv4sparsearray.cpp x y \ / \ y --> x b / \ \ a b a 11588 -
qv4sparsearray_p.h 7817 -
qv4sqlerrors.cpp 1514 -
qv4sqlerrors_p.h 963 -
qv4stackframe.cpp 2301 -
qv4stackframe_p.h 12126 -
qv4string.cpp 7219 -
qv4string_p.h 8020 -
qv4stringiterator.cpp 2094 -
qv4stringiterator_p.h 1527 -
qv4stringobject.cpp 43157 -
qv4stringobject_p.h don't init 6004 -
qv4symbol.cpp 6067 -
qv4symbol_p.h 2474 -
qv4typedarray.cpp 62873 -
qv4typedarray_p.h 8756 -
qv4urlobject.cpp 43405 -
qv4urlobject_p.h 12810 -
qv4value.cpp 8498 -
qv4value_p.h 13041 -
qv4variantassociationobject.cpp ! \class QV4::VariantAssociationObject \internal A VariantAssociationObject stores the contents of a QVariantMap or QVariantHash and makes them acccessible to the JavaScript engine. It behaves mostly like a regular JavaScript object. The entries of the QVariantMap or QVariantHash are exposed as properties. VariantAssociationObject is a ReferenceObject. Therefore it writes back its contents to the property it was retrieved from whenever it changes. It also re-reads the property whenever that one changes. As long as a VariantAssociationObject is attached to a property this way, it is the responsibility of the property's surrounding (C++) object to keep the contents valid. It has to, for example, track pointers to QObjects potentially deleted in other places so that they don't become dangling. However, the VariantAssociation can also be detached. This happens predominantly by assigning it to a QML-declared property. In that case, it becomes the VariantAssociationObject's responsibility to track its contents. To do so, it does not keep an actual QVariantMap or QVariantHash in this case, but rather stores its contents as actual JavaScript object properties. This includes QObjectWrappers for all QObject pointers it may contain. The contents are then marked like all JavaScript properties when the garbage collector runs, and QObjectWrapper also guards against external deletion. There is no property to read or write back in this case, and neither does the internal QVariantMap or QVariantHash need to be updated. Therefore, the objects stored in the individual properties are also created detached and won't read or write back. 17352 -
qv4variantassociationobject_p.h 4081 -
qv4variantobject.cpp 5113 -
qv4variantobject_p.h 2300 -
qv4vme_moth.cpp ! \internal \since 5.5 This function is called uncondionally from VME::run(). An attached debugger can set a breakpoint here to intercept calls to VME::run(). 48028 -
qv4vme_moth_p.h 1091 -
qv4vtable_p.h 12134 -