Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–1559 unchanged (1559 lines)
1560
1561 // 3. For each element name of methodNames, do
1562 for (auto& method_name : method_names) {
1563 // a. Let method be ? Get(O, name).
1564 Value method;
1565 if (method_name == vm.names.toString) {
1566 static Bytecode::PropertyLookupCache cache;
1567 method = TRY(get(method_name, cache));
1568 } else {
1569 ASSERT(method_name == vm.names.valueOf);
1570 static Bytecode::PropertyLookupCache cache;
1571 method = TRY(get(method_name, cache));
1572 }
1573
1574 // b. If IsCallable(method) is true, then
1575 if (method.is_function()) {
1576 // i. Let result be ? Call(method, O).
…lines 1577–1597 unchanged (21 lines)

After

…lines 1–1559 unchanged (1559 lines)
1560
1561 // 3. For each element name of methodNames, do
1562 for (auto& method_name : method_names) {
1563 // a. Let method be ? Get(O, name).
1564 Value method;
1565 if (method_name == vm.names.toString) {
1566 static Bytecode::StaticPropertyLookupCache cache;
1567 method = TRY(get(method_name, cache));
1568 } else {
1569 ASSERT(method_name == vm.names.valueOf);
1570 static Bytecode::StaticPropertyLookupCache cache;
1571 method = TRY(get(method_name, cache));
1572 }
1573
1574 // b. If IsCallable(method) is true, then
1575 if (method.is_function()) {
1576 // i. Let result be ? Call(method, O).
…lines 1577–1597 unchanged (21 lines)

Before

translation_unit
comment "/*\n * Copyright (c) 2020-2024, Andreas Kling <andreas@ladybi"...
preproc_include
#include "#include"
system_lib_string "<AK/ByteString.h>"
preproc_include
#include "#include"
system_lib_string "<AK/TypeCasts.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Bytecode/PropertyAccess.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/AbstractOperations.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Accessor.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Array.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ArrayIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ClassFieldDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ECMAScriptFunctionObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Error.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/GlobalObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/MapIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeJavaScriptBackedFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Object.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/PropertyDescriptor.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ProxyObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/SetIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Shape.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/StringIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Value.h>"
namespace_definition
namespace "namespace"
namespace_identifier "JS"
declaration_list
{ "{"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "Object"
) ")"
; ";"
declaration (+38 nodes collapsed)
comment "// 10.1.12 OrdinaryObjectCreate ( proto [ , additionalIntern"...
function_definition (+153 nodes collapsed)
function_definition (+97 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+68 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+92 nodes collapsed)
function_definition (+95 nodes collapsed)
function_definition (+74 nodes collapsed)
function_definition (+35 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+48 nodes collapsed)
comment "// 7.2 Testing and Comparison Operations, https://tc39.es/ec"...
comment "// 7.2.5 IsExtensible ( O ), https://tc39.es/ecma262/#sec-is"...
function_definition (+30 nodes collapsed)
comment "// 7.3 Operations on Objects, https://tc39.es/ecma262/#sec-o"...
comment "// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p"
function_definition (+45 nodes collapsed)
comment "// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p"
function_definition (+68 nodes collapsed)
comment "// NOTE: 7.3.3 GetV ( V, P ) is implemented as Value::get()."
comment "// 7.3.4 Set ( O, P, V, Throw ), https://tc39.es/ecma262/#se"...
function_definition (+141 nodes collapsed)
function_definition (+139 nodes collapsed)
comment "// 7.3.5 CreateDataProperty ( O, P, V ), https://tc39.es/ecm"...
function_definition (+140 nodes collapsed)
comment "// 7.3.6 CreateMethodProperty ( O, P, V ), https://tc39.es/e"...
function_definition (+100 nodes collapsed)
comment "// 7.3.7 CreateDataPropertyOrThrow ( O, P, V ), https://tc39"...
function_definition (+124 nodes collapsed)
comment "// 7.3.8 CreateNonEnumerableDataPropertyOrThrow ( O, P, V ),"...
function_definition (+99 nodes collapsed)
comment "// 7.3.9 DefinePropertyOrThrow ( O, P, desc ), https://tc39."...
function_definition (+111 nodes collapsed)
comment "// 7.3.10 DeletePropertyOrThrow ( O, P ), https://tc39.es/ec"...
function_definition (+103 nodes collapsed)
comment "// 7.3.12 HasProperty ( O, P ), https://tc39.es/ecma262/#sec"...
function_definition (+38 nodes collapsed)
comment "// 7.3.13 HasOwnProperty ( O, P ), https://tc39.es/ecma262/#"...
function_definition (+72 nodes collapsed)
comment "// 7.3.16 SetIntegrityLevel ( O, level ), https://tc39.es/ec"...
function_definition (+340 nodes collapsed)
comment "// 7.3.17 TestIntegrityLevel ( O, level ), https://tc39.es/e"...
function_definition (+228 nodes collapsed)
comment "// 7.3.24 EnumerableOwnPropertyNames ( O, kind ), https://tc"...
function_definition (+442 nodes collapsed)
comment "// 7.3.26 CopyDataProperties ( target, source, excludedItems"...
comment "// 14.6 CopyDataProperties ( target, source, excludedItems, "...
function_definition (+304 nodes collapsed)
comment "// 14.7 SnapshotOwnProperties ( source, proto [ , excludedKe"...
function_definition (+147 nodes collapsed)
comment "// 7.3.27 PrivateElementFind ( O, P ), https://tc39.es/ecma2"...
function_definition (+118 nodes collapsed)
comment "// 7.3.28 PrivateFieldAdd ( O, P, value ), https://tc39.es/e"...
function_definition (+177 nodes collapsed)
comment "// 7.3.29 PrivateMethodOrAccessorAdd ( O, method ), https://"...
function_definition (+206 nodes collapsed)
comment "// 7.3.31 PrivateGet ( O, P ), https://tc39.es/ecma262/#sec-"...
function_definition (+231 nodes collapsed)
comment "// 7.3.32 PrivateSet ( O, P, value ), https://tc39.es/ecma26"...
function_definition (+326 nodes collapsed)
comment "// 7.3.33 DefineField ( receiver, fieldRecord ), https://tc3"...
function_definition (+298 nodes collapsed)
comment "// 7.3.34 InitializeInstanceElements ( O, constructor ), htt"...
function_definition (+131 nodes collapsed)
comment "// 10.1 Ordinary Object Internal Methods and Internal Slots,"...
comment "// 10.1.1 [[GetPrototypeOf]] ( ), https://tc39.es/ecma262/#s"...
function_definition (+45 nodes collapsed)
comment "// 10.1.2 [[SetPrototypeOf]] ( V ), https://tc39.es/ecma262/"...
function_definition (+151 nodes collapsed)
comment "// 10.1.3 [[IsExtensible]] ( ), https://tc39.es/ecma262/#sec"...
function_definition (+30 nodes collapsed)
comment "// 10.1.4 [[PreventExtensions]] ( ), https://tc39.es/ecma262"...
function_definition (+33 nodes collapsed)
comment "// 10.1.5 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/"...
comment "// 10.1.5.1 OrdinaryGetOwnProperty ( O, P ) https://tc39.es/"...
function_definition (+308 nodes collapsed)
comment "// 10.1.6 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es"...
comment "// 10.1.6.1 OrdinaryDefineOwnProperty ( O, P, Desc ), https:"...
function_definition (+106 nodes collapsed)
comment "// 10.1.7 [[HasProperty]] ( P ), https://tc39.es/ecma262/#se"...
comment "// 10.1.7.1 OrdinaryHasProperty ( O, P ), https://tc39.es/ec"...
function_definition (+113 nodes collapsed)
comment "// 10.1.8 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#"...
comment "// 10.1.8.1 OrdinaryGet ( O, P, Receiver ), https://tc39.es/"...
function_definition (+500 nodes collapsed)
comment "// 10.1.9 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma26"...
comment "// 10.1.9.1 OrdinarySet ( O, P, V, Receiver ), https://tc39."...
function_definition (+117 nodes collapsed)
comment "// 10.1.9.2 OrdinarySetWithOwnDescriptor ( O, P, V, Receiver"...
function_definition (+973 nodes collapsed)
comment "// 10.1.10 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-or"...
comment "// 10.1.10.1 OrdinaryDelete ( O, P ), https://tc39.es/ecma26"...
function_definition (+99 nodes collapsed)
comment "// 10.1.11 [[OwnPropertyKeys]] ( ), https://tc39.es/ecma262/"...
function_definition (+263 nodes collapsed)
comment "// 10.4.7.2 SetImmutablePrototype ( O, V ), https://tc39.es/"...
function_definition (+63 nodes collapsed)
function_definition (+175 nodes collapsed)
function_definition (+325 nodes collapsed)
function_definition (+77 nodes collapsed)
function_definition (+427 nodes collapsed)
function_definition (+254 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+196 nodes collapsed)
function_definition (+178 nodes collapsed)
function_definition (+115 nodes collapsed)
function_definition (+449 nodes collapsed)
function_definition (+47 nodes collapsed)
comment "// Simple side-effect free property lookup, following the pr"...
function_definition (+96 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+52 nodes collapsed)
comment "// 20.1.2.3.1 ObjectDefineProperties ( O, Properties ), http"...
function_definition (+298 nodes collapsed)
comment "// 14.7.5.9 EnumerateObjectProperties ( O ), https://tc39.es"...
function_definition (+301 nodes collapsed)
function_definition (+98 nodes collapsed)
comment "// 7.1.1.1 OrdinaryToPrimitive ( O, hint ), https://tc39.es/"...
function_definition
template_type
type_identifier "ThrowCompletionOr"
template_argument_list
< "<"
type_descriptor
type_identifier "Value"
> ">"
function_declarator
qualified_identifier
namespace_identifier "Object"
:: "::"
identifier "ordinary_to_primitive"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "Value"
:: "::"
type_identifier "PreferredType"
identifier "preferred_type"
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
expression_statement (+29 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "vm"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "vm"
argument_list
( "("
) ")"
; ";"
declaration (+83 nodes collapsed)
comment "// 3. For each element name of methodNames, do"
for_range_loop
for "for"
( "("
placeholder_type_specifier
auto "auto"
reference_declarator
& "&"
identifier "method_name"
: ":"
identifier "method_names"
) ")"
compound_statement
{ "{"
comment "// a. Let method be ? Get(O, name)."
declaration
type_identifier "Value"
identifier "method"
; ";"
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "method_name"
== "=="
field_expression
field_expression
identifier "vm"
. "."
field_identifier "names"
. "."
field_identifier "toString"
) ")"
compound_statement
{ "{"
declaration
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "Bytecode"
:: "::"
type_identifier "PropertyLookupCache"
identifier "cache"
; ";"
expression_statement
assignment_expression
identifier "method"
= "="
call_expression
identifier "TRY"
argument_list
( "("
call_expression
identifier "get"
argument_list
( "("
identifier "method_name"
, ","
identifier "cache"
) ")"
) ")"
; ";"
} "}"
else_clause
else "else"
compound_statement
{ "{"
expression_statement
call_expression
identifier "ASSERT"
argument_list
( "("
binary_expression
identifier "method_name"
== "=="
field_expression
field_expression
identifier "vm"
. "."
field_identifier "names"
. "."
field_identifier "valueOf"
) ")"
; ";"
declaration
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "Bytecode"
:: "::"
type_identifier "PropertyLookupCache"
identifier "cache"
; ";"
expression_statement
assignment_expression
identifier "method"
= "="
call_expression
identifier "TRY"
argument_list
( "("
call_expression
identifier "get"
argument_list
( "("
identifier "method_name"
, ","
identifier "cache"
) ")"
) ")"
; ";"
} "}"
comment "// b. If IsCallable(method) is true, then"
if_statement (+79 nodes collapsed)
} "}"
comment "// 4. Throw a TypeError exception."
return_statement (+48 nodes collapsed)
} "}"
function_definition (+52 nodes collapsed)
} "}"

After

translation_unit
comment "/*\n * Copyright (c) 2020-2024, Andreas Kling <andreas@ladybi"...
preproc_include
#include "#include"
system_lib_string "<AK/ByteString.h>"
preproc_include
#include "#include"
system_lib_string "<AK/TypeCasts.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Bytecode/PropertyAccess.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/AbstractOperations.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Accessor.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Array.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ArrayIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ClassFieldDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ECMAScriptFunctionObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Error.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/GlobalObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/MapIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeJavaScriptBackedFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Object.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/PropertyDescriptor.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/ProxyObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/SetIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Shape.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/StringIteratorPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Value.h>"
namespace_definition
namespace "namespace"
namespace_identifier "JS"
declaration_list
{ "{"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "Object"
) ")"
; ";"
declaration (+38 nodes collapsed)
comment "// 10.1.12 OrdinaryObjectCreate ( proto [ , additionalIntern"...
function_definition (+153 nodes collapsed)
function_definition (+97 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+68 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+92 nodes collapsed)
function_definition (+95 nodes collapsed)
function_definition (+74 nodes collapsed)
function_definition (+35 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+48 nodes collapsed)
comment "// 7.2 Testing and Comparison Operations, https://tc39.es/ec"...
comment "// 7.2.5 IsExtensible ( O ), https://tc39.es/ecma262/#sec-is"...
function_definition (+30 nodes collapsed)
comment "// 7.3 Operations on Objects, https://tc39.es/ecma262/#sec-o"...
comment "// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p"
function_definition (+45 nodes collapsed)
comment "// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p"
function_definition (+68 nodes collapsed)
comment "// NOTE: 7.3.3 GetV ( V, P ) is implemented as Value::get()."
comment "// 7.3.4 Set ( O, P, V, Throw ), https://tc39.es/ecma262/#se"...
function_definition (+141 nodes collapsed)
function_definition (+139 nodes collapsed)
comment "// 7.3.5 CreateDataProperty ( O, P, V ), https://tc39.es/ecm"...
function_definition (+140 nodes collapsed)
comment "// 7.3.6 CreateMethodProperty ( O, P, V ), https://tc39.es/e"...
function_definition (+100 nodes collapsed)
comment "// 7.3.7 CreateDataPropertyOrThrow ( O, P, V ), https://tc39"...
function_definition (+124 nodes collapsed)
comment "// 7.3.8 CreateNonEnumerableDataPropertyOrThrow ( O, P, V ),"...
function_definition (+99 nodes collapsed)
comment "// 7.3.9 DefinePropertyOrThrow ( O, P, desc ), https://tc39."...
function_definition (+111 nodes collapsed)
comment "// 7.3.10 DeletePropertyOrThrow ( O, P ), https://tc39.es/ec"...
function_definition (+103 nodes collapsed)
comment "// 7.3.12 HasProperty ( O, P ), https://tc39.es/ecma262/#sec"...
function_definition (+38 nodes collapsed)
comment "// 7.3.13 HasOwnProperty ( O, P ), https://tc39.es/ecma262/#"...
function_definition (+72 nodes collapsed)
comment "// 7.3.16 SetIntegrityLevel ( O, level ), https://tc39.es/ec"...
function_definition (+340 nodes collapsed)
comment "// 7.3.17 TestIntegrityLevel ( O, level ), https://tc39.es/e"...
function_definition (+228 nodes collapsed)
comment "// 7.3.24 EnumerableOwnPropertyNames ( O, kind ), https://tc"...
function_definition (+442 nodes collapsed)
comment "// 7.3.26 CopyDataProperties ( target, source, excludedItems"...
comment "// 14.6 CopyDataProperties ( target, source, excludedItems, "...
function_definition (+304 nodes collapsed)
comment "// 14.7 SnapshotOwnProperties ( source, proto [ , excludedKe"...
function_definition (+147 nodes collapsed)
comment "// 7.3.27 PrivateElementFind ( O, P ), https://tc39.es/ecma2"...
function_definition (+118 nodes collapsed)
comment "// 7.3.28 PrivateFieldAdd ( O, P, value ), https://tc39.es/e"...
function_definition (+177 nodes collapsed)
comment "// 7.3.29 PrivateMethodOrAccessorAdd ( O, method ), https://"...
function_definition (+206 nodes collapsed)
comment "// 7.3.31 PrivateGet ( O, P ), https://tc39.es/ecma262/#sec-"...
function_definition (+231 nodes collapsed)
comment "// 7.3.32 PrivateSet ( O, P, value ), https://tc39.es/ecma26"...
function_definition (+326 nodes collapsed)
comment "// 7.3.33 DefineField ( receiver, fieldRecord ), https://tc3"...
function_definition (+298 nodes collapsed)
comment "// 7.3.34 InitializeInstanceElements ( O, constructor ), htt"...
function_definition (+131 nodes collapsed)
comment "// 10.1 Ordinary Object Internal Methods and Internal Slots,"...
comment "// 10.1.1 [[GetPrototypeOf]] ( ), https://tc39.es/ecma262/#s"...
function_definition (+45 nodes collapsed)
comment "// 10.1.2 [[SetPrototypeOf]] ( V ), https://tc39.es/ecma262/"...
function_definition (+151 nodes collapsed)
comment "// 10.1.3 [[IsExtensible]] ( ), https://tc39.es/ecma262/#sec"...
function_definition (+30 nodes collapsed)
comment "// 10.1.4 [[PreventExtensions]] ( ), https://tc39.es/ecma262"...
function_definition (+33 nodes collapsed)
comment "// 10.1.5 [[GetOwnProperty]] ( P ), https://tc39.es/ecma262/"...
comment "// 10.1.5.1 OrdinaryGetOwnProperty ( O, P ) https://tc39.es/"...
function_definition (+308 nodes collapsed)
comment "// 10.1.6 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es"...
comment "// 10.1.6.1 OrdinaryDefineOwnProperty ( O, P, Desc ), https:"...
function_definition (+106 nodes collapsed)
comment "// 10.1.7 [[HasProperty]] ( P ), https://tc39.es/ecma262/#se"...
comment "// 10.1.7.1 OrdinaryHasProperty ( O, P ), https://tc39.es/ec"...
function_definition (+113 nodes collapsed)
comment "// 10.1.8 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#"...
comment "// 10.1.8.1 OrdinaryGet ( O, P, Receiver ), https://tc39.es/"...
function_definition (+500 nodes collapsed)
comment "// 10.1.9 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma26"...
comment "// 10.1.9.1 OrdinarySet ( O, P, V, Receiver ), https://tc39."...
function_definition (+117 nodes collapsed)
comment "// 10.1.9.2 OrdinarySetWithOwnDescriptor ( O, P, V, Receiver"...
function_definition (+973 nodes collapsed)
comment "// 10.1.10 [[Delete]] ( P ), https://tc39.es/ecma262/#sec-or"...
comment "// 10.1.10.1 OrdinaryDelete ( O, P ), https://tc39.es/ecma26"...
function_definition (+99 nodes collapsed)
comment "// 10.1.11 [[OwnPropertyKeys]] ( ), https://tc39.es/ecma262/"...
function_definition (+263 nodes collapsed)
comment "// 10.4.7.2 SetImmutablePrototype ( O, V ), https://tc39.es/"...
function_definition (+63 nodes collapsed)
function_definition (+175 nodes collapsed)
function_definition (+325 nodes collapsed)
function_definition (+77 nodes collapsed)
function_definition (+427 nodes collapsed)
function_definition (+254 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+196 nodes collapsed)
function_definition (+178 nodes collapsed)
function_definition (+115 nodes collapsed)
function_definition (+449 nodes collapsed)
function_definition (+47 nodes collapsed)
comment "// Simple side-effect free property lookup, following the pr"...
function_definition (+96 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+52 nodes collapsed)
comment "// 20.1.2.3.1 ObjectDefineProperties ( O, Properties ), http"...
function_definition (+298 nodes collapsed)
comment "// 14.7.5.9 EnumerateObjectProperties ( O ), https://tc39.es"...
function_definition (+301 nodes collapsed)
function_definition (+98 nodes collapsed)
comment "// 7.1.1.1 OrdinaryToPrimitive ( O, hint ), https://tc39.es/"...
function_definition
template_type
type_identifier "ThrowCompletionOr"
template_argument_list
< "<"
type_descriptor
type_identifier "Value"
> ">"
function_declarator
qualified_identifier
namespace_identifier "Object"
:: "::"
identifier "ordinary_to_primitive"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "Value"
:: "::"
type_identifier "PreferredType"
identifier "preferred_type"
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
expression_statement (+29 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "vm"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "vm"
argument_list
( "("
) ")"
; ";"
declaration (+83 nodes collapsed)
comment "// 3. For each element name of methodNames, do"
for_range_loop
for "for"
( "("
placeholder_type_specifier
auto "auto"
reference_declarator
& "&"
identifier "method_name"
: ":"
identifier "method_names"
) ")"
compound_statement
{ "{"
comment "// a. Let method be ? Get(O, name)."
declaration
type_identifier "Value"
identifier "method"
; ";"
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "method_name"
== "=="
field_expression
field_expression
identifier "vm"
. "."
field_identifier "names"
. "."
field_identifier "toString"
) ")"
compound_statement
{ "{"
declaration
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "Bytecode"
:: "::"
type_identifier "StaticPropertyLookupCache"
identifier "cache"
; ";"
expression_statement
assignment_expression
identifier "method"
= "="
call_expression
identifier "TRY"
argument_list
( "("
call_expression
identifier "get"
argument_list
( "("
identifier "method_name"
, ","
identifier "cache"
) ")"
) ")"
; ";"
} "}"
else_clause
else "else"
compound_statement
{ "{"
expression_statement
call_expression
identifier "ASSERT"
argument_list
( "("
binary_expression
identifier "method_name"
== "=="
field_expression
field_expression
identifier "vm"
. "."
field_identifier "names"
. "."
field_identifier "valueOf"
) ")"
; ";"
declaration
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "Bytecode"
:: "::"
type_identifier "StaticPropertyLookupCache"
identifier "cache"
; ";"
expression_statement
assignment_expression
identifier "method"
= "="
call_expression
identifier "TRY"
argument_list
( "("
call_expression
identifier "get"
argument_list
( "("
identifier "method_name"
, ","
identifier "cache"
) ")"
) ")"
; ";"
} "}"
comment "// b. If IsCallable(method) is true, then"
if_statement (+79 nodes collapsed)
} "}"
comment "// 4. Throw a TypeError exception."
return_statement (+48 nodes collapsed)
} "}"
function_definition (+52 nodes collapsed)
} "}"