Lines Matching refs:Node
108 [&]() -> compiler::Node* { \
145 [&]() -> compiler::Node* { \
162 [&]() -> compiler::Node* { \
163 compiler::Node* const argc = \
229 using Node = compiler::Node;
272 TNode<IntPtrT> ParameterToIntPtr(Node* value, ParameterMode mode) {
277 Node* IntPtrToParameter(SloppyTNode<IntPtrT> value, ParameterMode mode) {
282 Node* Int32ToParameter(SloppyTNode<Int32T> value, ParameterMode mode) {
286 TNode<Smi> ParameterToTagged(Node* value, ParameterMode mode) {
291 Node* TaggedToParameter(SloppyTNode<Smi> value, ParameterMode mode) {
406 Node* MatchesParameterMode(Node* value, ParameterMode mode);
409 Node* OpName(Node* a, Node* b, ParameterMode mode) { \
457 Node* IntPtrOrSmiConstant(int value, ParameterMode mode);
462 bool IsIntPtrOrSmiConstantZero(Node* test, ParameterMode mode);
463 bool TryGetIntPtrOrSmiConstantValue(Node* maybe_constant, int* value,
544 Node* WordOrSmiShl(Node* a, int shift, ParameterMode mode) {
553 Node* WordOrSmiShr(Node* a, int shift, ParameterMode mode) {
604 void GotoIfNotNumber(Node* value, Label* is_not_number);
605 void GotoIfNumber(Node* value, Label* is_number);
608 TNode<Number> BitwiseOp(Node* left32, Node* right32, Operation bitwise_op);
611 Node* AllocateInNewSpace(Node* size, AllocationFlags flags = kNone);
612 Node* AllocateInNewSpace(int size, AllocationFlags flags = kNone);
613 Node* Allocate(Node* size, AllocationFlags flags = kNone);
614 Node* Allocate(int size, AllocationFlags flags = kNone);
615 Node* InnerAllocate(Node* previous, int offset);
616 Node* InnerAllocate(Node* previous, Node* offset);
617 Node* IsRegularHeapObjectSize(Node* size);
620 typedef std::function<Node*()> NodeGenerator;
624 Node* extra_node1 = nullptr, const char* extra_node1_name = "",
625 Node* extra_node2 = nullptr, const char* extra_node2_name = "",
626 Node* extra_node3 = nullptr, const char* extra_node3_name = "",
627 Node* extra_node4 = nullptr, const char* extra_node4_name = "",
628 Node* extra_node5 = nullptr, const char* extra_node5_name = "");
631 int line = 0, Node* extra_node1 = nullptr,
632 const char* extra_node1_name = "", Node* extra_node2 = nullptr,
633 const char* extra_node2_name = "", Node* extra_node3 = nullptr,
634 const char* extra_node3_name = "", Node* extra_node4 = nullptr,
635 const char* extra_node4_name = "", Node* extra_node5 = nullptr,
639 Node* extra_node1 = nullptr, const char* extra_node1_name = "",
640 Node* extra_node2 = nullptr, const char* extra_node2_name = "",
641 Node* extra_node3 = nullptr, const char* extra_node3_name = "",
642 Node* extra_node4 = nullptr, const char* extra_node4_name = "",
643 Node* extra_node5 = nullptr, const char* extra_node5_name = "");
646 Node* extra_node1 = nullptr, const char* extra_node1_name = "",
647 Node* extra_node2 = nullptr, const char* extra_node2_name = "",
648 Node* extra_node3 = nullptr, const char* extra_node3_name = "",
649 Node* extra_node4 = nullptr, const char* extra_node4_name = "",
650 Node* extra_node5 = nullptr, const char* extra_node5_name = "");
680 [&]() -> Node* { return implicit_cast<TNode<A>>(true_body()); },
681 [&]() -> Node* { return implicit_cast<TNode<A>>(false_body()); },
746 void BranchIfFloat64IsNaN(Node* value, Label* if_true, Label* if_false) {
752 void BranchIfToBooleanIsTrue(Node* value, Label* if_true, Label* if_false);
754 void BranchIfJSReceiver(Node* object, Label* if_true, Label* if_false);
756 void BranchIfFastJSArray(Node* object, Node* context, Label* if_true,
758 void BranchIfNotFastJSArray(Node* object, Node* context, Label* if_true,
762 void BranchIfFastJSArrayForCopy(Node* object, Node* context, Label* if_true,
773 Node* LoadFromFrame(int offset, MachineType rep = MachineType::AnyTagged());
775 Node* LoadFromParentFrame(int offset,
787 Node* LoadBufferObject(Node* buffer, int offset,
790 Node* LoadObjectField(SloppyTNode<HeapObject> object, int offset,
809 Node* LoadObjectField(SloppyTNode<HeapObject> object,
820 TNode<Int32T> LoadAndUntagToWord32ObjectField(Node* object, int offset);
822 TNode<IntPtrT> LoadAndUntagSmi(Node* base, int index);
833 Node* StoreAndTagSmi(Node* base, int offset, Node* value);
896 Node* LoadMapEnumLength(SloppyTNode<Map> map);
905 void InitializePropertyArrayLength(Node* property_array, Node* length,
924 Node* PointerToSeqStringData(Node* seq_string);
926 Node* LoadJSValueValue(Node* object);
967 void FixedArrayBoundsCheck(TNode<FixedArrayBase> array, Node* index,
973 SloppyTNode<HeapObject> object, int array_header_size, Node* index,
980 TNode<FixedArray> object, Node* index, int additional_offset = 0,
1017 SloppyTNode<HeapObject> object, int array_header_size, Node* index,
1023 SloppyTNode<HeapObject> object, Node* index, int additional_offset = 0,
1034 TNode<WeakFixedArray> object, Node* index, int additional_offset = 0,
1048 SloppyTNode<FixedDoubleArray> object, Node* index,
1053 Node* LoadFixedDoubleArrayElement(TNode<FixedDoubleArray> object,
1071 Node* object, Node* index, int additional_offset = 0,
1087 Node* LoadFixedTypedArrayElementAsTagged(
1088 Node* data_pointer, Node* index_node, ElementsKind elements_kind,
1093 Node* LoadFixedBigInt64ArrayElementAsTagged(Node* data_pointer, Node* offset);
1094 Node* LoadFixedBigUint64ArrayElementAsTagged(Node* data_pointer,
1095 Node* offset);
1119 void GotoIfContextElementEqual(Node* value, Node* native_context,
1135 Node* LoadJSFunctionPrototype(Node* function, Label* if_bailout);
1137 Node* LoadSharedFunctionInfoBytecodeArray(Node* shared);
1148 Node* StoreObjectField(Node* object, int offset, Node* value);
1149 Node* StoreObjectField(Node* object, Node* offset, Node* value);
1150 Node* StoreObjectFieldNoWriteBarrier(
1151 Node* object, int offset, Node* value,
1153 Node* StoreObjectFieldNoWriteBarrier(
1154 Node* object, Node* offset, Node* value,
1157 Node* StoreMap(Node* object, Node* map);
1158 Node* StoreMapNoWriteBarrier(Node* object,
1160 Node* StoreMapNoWriteBarrier(Node* object, Node* map);
1161 Node* StoreObjectFieldRoot(Node* object, int offset,
1171 Node* StoreJSArrayLength(TNode<JSArray> array, TNode<Smi> length);
1172 Node* StoreElements(TNode<Object> object, TNode<FixedArrayBase> elements);
1175 Node* array, Node* index, Node* value,
1181 TNode<FixedArray> array, Node* index, SloppyTNode<Object> value,
1191 TNode<PropertyArray> array, Node* index, SloppyTNode<Object> value,
1207 TNode<FixedDoubleArray> object, Node* index, TNode<Float64T> value,
1210 Node* StoreFeedbackVectorSlot(
1211 Node* object, Node* index, Node* value,
1222 // It returns ElementsKind as a node for further division into cases.
1226 Label* bailout, Node* elements, Node* index,
1227 Node* value);
1233 void BuildAppendJSArray(ElementsKind kind, Node* array, Node* value,
1236 void StoreFieldsNoWriteBarrier(Node* start_address, Node* end_address,
1237 Node* value);
1239 Node* AllocateCellWithValue(Node* value,
1241 Node* AllocateSmiCell(int value = 0) {
1245 Node* LoadCellValue(Node* cell);
1247 Node* StoreCellValue(Node* cell, Node* value,
1276 TNode<String> AllocateSeqOneByteString(Node* context, TNode<Smi> length,
1281 TNode<String> AllocateSeqTwoByteString(Node* context, TNode<Smi> length,
1313 TNode<String> NewConsString(Node* context, TNode<Smi> length,
1326 Node* AllocateOrderedHashTable();
1339 Node* table, Node* hash,
1340 std::function<void(Node*, Label*, Label*)> key_compare,
1346 Node* AllocateStruct(Node* map, AllocationFlags flags = kNone);
1347 void InitializeStructBody(Node* object, Node* map, Node* size,
1350 Node* AllocateJSObjectFromMap(
1351 Node* map, Node* properties = nullptr, Node* elements = nullptr,
1356 Node* object, Node* map, Node* instance_size, Node* properties = nullptr,
1357 Node* elements = nullptr,
1360 void InitializeJSObjectBodyWithSlackTracking(Node* object, Node* map,
1361 Node* instance_size);
1363 Node* object, Node* map, Node* instance_size,
1367 Node* AllocateUninitializedJSArrayWithoutElements(
1368 Node* array_map, Node* length, Node* allocation_site = nullptr);
1372 std::pair<Node*, Node*> AllocateUninitializedJSArrayWithElements(
1373 ElementsKind kind, Node* array_map, Node* length, Node* allocation_site,
1374 Node* capacity, ParameterMode capacity_mode = INTPTR_PARAMETERS);
1377 Node* AllocateJSArray(ElementsKind kind, Node* array_map, Node* capacity,
1378 Node* length, Node* allocation_site = nullptr,
1381 Node
1387 Node* AllocateJSArray(ElementsKind kind, TNode<Map> array_map,
1393 Node* CloneFastJSArray(Node* context, Node* array,
1395 Node* allocation_site = nullptr);
1397 Node* ExtractFastJSArray(Node* context, Node* array, Node* begin, Node* count,
1399 Node* capacity = nullptr,
1400 Node* allocation_site = nullptr);
1403 ElementsKind kind, Node* capacity, ParameterMode mode = INTPTR_PARAMETERS,
1431 Node* AllocatePropertyArray(Node* capacity,
1440 Node* AllocateJSIteratorResult(Node* context, Node* value, Node* done);
1441 Node* AllocateJSIteratorResultForEntry(Node* context, Node* key, Node* value);
1443 Node* ArraySpeciesCreate(TNode<Context> context, TNode<Object> originalArray,
1446 void FillFixedArrayWithValue(ElementsKind kind, Node* array, Node* from_index,
1447 Node* to_index,
1457 void FillPropertyArrayWithUndefined(Node* array, Node* from_index,
1458 Node* to_index,
1462 Node* from_array, Node* to_array, Node* length,
1469 ElementsKind kind, Node* from_array, Node* to_array, Node* length,
1481 ElementsKind from_kind, Node* from_array, ElementsKind to_kind,
1482 Node* to_array, Node* element_count, Node* capacity,
1494 ElementsKind from_kind, Node* from_array, ElementsKind to_kind,
1495 Node* to_array, Node* first_element, Node* element_count, Node* capacity,
1554 Node* source, Node* first, Node* count = nullptr,
1555 Node* capacity = nullptr,
1580 Node* CloneFixedArray(Node* source,
1595 void CopyStringCharacters(Node* from_string, Node* to_string,
1605 Node* LoadElementAndPrepareForStore(Node* array, Node* offset,
1609 Node* CalculateNewElementsCapacity(Node* old_capacity,
1614 Node* TryGrowElementsCapacity(Node* object, Node* elements, ElementsKind kind,
1615 Node* key, Label* bailout);
1620 Node* TryGrowElementsCapacity(Node* object, Node* elements, ElementsKind kind,
1621 Node* key, Node* capacity, ParameterMode mode,
1625 Node* GrowElementsCapacity(Node* object, Node* elements,
1627 Node* capacity, Node* new_capacity,
1634 Node* array, Node* length,
1635 Variable* var_elements, Node* growth,
1639 void InitializeAllocationMemento(Node* base_allocation,
1640 Node* base_allocation_size,
1641 Node* allocation_site);
1643 Node* TryTaggedToFloat64(Node* value, Label* if_valueisnotnumber);
1644 Node* TruncateTaggedToFloat64(Node* context, Node* value);
1645 Node* TruncateTaggedToWord32(Node* context, Node* value);
1646 void TaggedToWord32OrBigInt(Node* context, Node* value, Label* if_number,
1650 Node* context, Node* value, Label* if_number, Variable* var_word32,
1654 Node* TruncateHeapNumberValueToWord32(Node* object);
1668 void TaggedToNumeric(Node* context, Node* value, Label* done,
1670 void TaggedToNumericWithFeedback(Node* context, Node* value, Label* done,
1692 TNode<String> ToThisString(Node* context, Node* value,
1697 Node* ToThisValue(Node* context, Node* value, PrimitiveType primitive_type,
1702 Node* ThrowIfNotInstanceType(Node* context, Node* value,
1707 Node* ThrowIfNotJSReceiver(Node* context, Node* value,
1711 void ThrowRangeError(Node* context, MessageTemplate::Template message,
1712 Node* arg0 = nullptr, Node
1713 Node* arg2 = nullptr);
1714 void ThrowTypeError(Node* context, MessageTemplate::Template message,
1716 void ThrowTypeError(Node* context, MessageTemplate::Template message,
1717 Node* arg0, Node* arg1 = nullptr, Node* arg2 = nullptr);
1828 inline Node* IsSharedFunctionInfo(Node* object) {
1867 Node* FixedArraySizeDoesntFitInNewSpace(
1868 Node* element_count, int base_size = FixedArray::kHeaderSize,
1876 Node* IsFastElementsKind(Node* elements_kind);
1887 Node* IsFastSmiOrTaggedElementsKind(Node* elements_kind);
1888 Node* IsFastSmiElementsKind(Node* elements_kind);
1889 Node* IsHoleyFastElementsKind(Node* elements_kind);
1890 Node* IsElementsKindGreaterThan(Node* target_kind,
1906 TNode<String> StringAdd(Node* context, TNode<String> first,
1911 void BranchIfCanDerefIndirectString(Node* string, Node* instance_type,
1914 void DerefIndirectString(Variable* var_string, Node* instance_type);
1917 void MaybeDerefIndirectString(Variable* var_string, Node* instance_type,
1921 void MaybeDerefIndirectStrings(Variable* var_left, Node* left_instance_type,
1922 Variable* var_right, Node* right_instance_type,
1924 Node* DerefIndirectString(TNode<String> string, TNode<Int32T> instance_type,
1973 Node* JSReceiverToPrimitive(Node* context, Node* input);
2008 // Returns a node that contains a decoded (unsigned!) value of a bit
2009 // field |BitField| in |word32|. Returns result as an uint32 node.
2015 // Returns a node that contains a decoded (unsigned!) value of a bit
2016 // field |BitField| in |word|. Returns result as a word-size node.
2022 // Returns a node that contains a decoded (unsigned!) value of a bit
2023 // field |BitField| in |word32|. Returns result as a word-size node.
2029 // Returns a node
2030 // field |BitField| in |word|. Returns result as an uint32 node.
2037 // Decodes an unsigned (!) value from |word32| to an uint32 node.
2041 // Decodes an unsigned (!) value from |word| to a word-size node.
2045 // Returns a node that contains the updated values of a |BitField|.
2051 // Returns a node that contains the updated {value} inside {word} starting
2142 void TryToName(Node* key, Label* if_keyisindex, Variable* var_index,
2155 void TryInternalizeString(Node* string, Label* if_index, Variable* var_index,
2171 TNode<Uint32T> LoadDetailsByKeyIndex(Node* container, Node* key_index) {
2184 TNode<Object> LoadValueByKeyIndex(Node* container, Node* key_index) {
2291 Node* ComputeIntegerHash(Node* key);
2292 Node* ComputeIntegerHash(Node* key, Node* seed);
2321 void TryHasOwnProperty(Node* object, Node* map, Node* instance_type,
2322 Node* unique_name, Label* if_found,
2331 void TryGetOwnProperty(Node* context, Node* receiver, Node* object, Node* map,
2332 Node* instance_type, Node* unique_name,
2335 void TryGetOwnProperty(Node* context, Node* receiver, Node* object, Node* map,
2336 Node* instance_type, Node* unique_name,
2359 Node* GetMethod(Node* context, Node* object, Handle<Name> name,
2379 void LoadPropertyFromFastObject(Node* object, Node* map,
2381 Node* name_index, Variable* var_details,
2384 void LoadPropertyFromFastObject(Node* object, Node* map,
2386 Node* name_index, Node* details,
2389 void LoadPropertyFromNameDictionary(Node* dictionary, Node* entry,
2393 Node* dictionary, Node* entry,
2430 void TryLookupElement(Node* object, Node* map,
2439 typedef std::function<void(Node* receiver, Node* holder, Node* map,
2440 Node* instance_type, Node* key, Label* next_holder,
2460 void TryPrototypeChainLookup(Node* receiver, Node* key,
2470 Node* HasInPrototypeChain(Node* context, Node* object, Node* prototype);
2472 Node* OrdinaryHasInstance(Node* context, Node* callable, Node* object);
2482 void UpdateFeedback(Node* feedback, Node* feedback_vector, Node* slot_id);
2492 void CombineFeedback(Variable* existing_feedback, Node* feedback);
2500 void CheckForAssociatedProtector(Node* name, Label* if_protector);
2505 Node* LoadKeyedSloppyArguments(Node* receiver, Node* key, Label* bailout) {
2510 void StoreKeyedSloppyArguments(Node* receiver, Node* key, Node* value,
2520 Node* Int32ToUint8Clamped(Node* int32_value);
2521 Node* Float64ToUint8Clamped(Node* float64_value);
2523 Node* PrepareValueForWriteToTypedArray(TNode<Object> input,
2528 void StoreElement(Node* elements, ElementsKind kind, Node* index, Node* value,
2543 void EmitElementStore(Node* object, Node* key, Node* value, bool is_jsarray,
2546 Node* context);
2548 Node* CheckForCapacityGrow(Node* object, Node* elements, ElementsKind kind,
2549 KeyedAccessStoreMode store_mode, Node* length,
2550 Node* key, ParameterMode mode, bool is_js_array,
2553 Node* CopyElementsOnWrite(Node* object, Node* elements, ElementsKind kind,
2554 Node* length, ParameterMode mode, Label* bailout);
2556 void TransitionElementsKind(Node* object, Node* map, ElementsKind from_kind,
2560 void TrapAllocationMemento(Node* object, Label* memento_found);
2566 SloppyTNode<FeedbackVector> feedback_vector, Node* slot,
2582 typedef std::function<void(Node* index)> FastLoopBody;
2584 Node* BuildFastLoop(const VariableList& var_list, Node* start_index,
2585 Node* end_index, const FastLoopBody& body, int increment,
2589 Node* BuildFastLoop(Node* start_index, Node* end_index,
2599 typedef std::function<void(Node* fixed_array, Node* offset)>
2603 const CodeStubAssembler::VariableList& vars, Node* fixed_array,
2604 ElementsKind kind, Node* first_element_inclusive,
2605 Node* last_element_exclusive, const FastFixedArrayForEachBody& body,
2610 Node* fixed_array, ElementsKind kind, Node* first_element_inclusive,
2611 Node* last_element_exclusive, const FastFixedArrayForEachBody& body,
2619 TNode<IntPtrT> GetArrayAllocationSize(Node* element_count, ElementsKind kind,
2624 TNode<IntPtrT> GetFixedArrayAllocationSize(Node* element_count,
2631 TNode<IntPtrT> GetPropertyArrayAllocationSize(Node* element_count,
2637 void GotoIfFixedArraySizeDoesntFitInNewSpace(Node* element_count,
2641 void InitializeFieldsWithRoot(Node* object, Node* start_offset,
2642 Node* end_offset, Heap::RootListIndex root);
2644 Node* RelationalComparison(Operation op, Node* left, Node* right,
2645 Node* context,
2648 void BranchIfNumberRelationalComparison(Operation op, Node* left, Node* right,
2651 void BranchIfNumberLessThan(Node* left, Node* right, Label* if_true,
2657 void BranchIfNumberLessThanOrEqual(Node* left, Node* right, Label* if_true,
2663 void BranchIfNumberGreaterThan(Node* left, Node* right, Label* if_true,
2669 void BranchIfNumberGreaterThanOrEqual(Node* left, Node* right, Label* if_true,
2675 void BranchIfAccessorPair(Node* value, Label* if_accessor_pair,
2681 void GotoIfNumberGreaterThanOrEqual(Node* left, Node* right, Label* if_false);
2683 Node* Equal(Node* lhs, Node* rhs, Node* context,
2686 Node* StrictEqual(Node* lhs, Node* rhs,
2692 void BranchIfSameValue(Node* lhs, Node* rhs, Label* if_true, Label* if_false);
2701 Node* Typeof(Node* value);
2710 Node* InstanceOf(Node* object, Node* callable, Node* context);
2713 Node* IsDebugActive();
2718 Node* IsDetachedBuffer(Node* buffer);
2729 TNode<IntPtrT> ElementOffsetFromIndex(Node* index, ElementsKind kind,
2747 Node* AllocateFunctionWithMapAndContext(Node* map, Node* shared_info,
2748 Node* context);
2751 Node* IsPromiseHookEnabled();
2752 Node* HasAsyncEventDelegate();
2753 Node* IsPromiseHookEnabledOrHasAsyncEventDelegate();
2756 Node* MarkerIsFrameType(Node* marker_or_function,
2758 Node* MarkerIsNotFrameType(Node* marker_or_function,
2762 void CheckPrototypeEnumCache(Node* receiver, Node* receiver_map,
2764 Node* CheckEnumCache(Node* receiver, Label* if_empty, Label* if_runtime);
2771 void Print(const char* prefix, Node* tagged_value);
2780 Node* MakeTypeError(MessageTemplate::Template message, Node* context,
2783 Node* const make_type_error = LoadContextElement(
2858 TNode<Object> CallGetterIfAccessor(Node* value, Node* details, Node* context,
2859 Node* receiver, Label* if_bailout,
2862 TNode<IntPtrT> TryToIntptr(Node* key, Label* miss);
2864 void BranchIfPrototypesHaveNoElements(Node* receiver_map,
2868 void InitializeFunctionContext(Node* native_context, Node* context,
2876 Node* AllocateRawDoubleAligned(Node* size_in_bytes, AllocationFlags flags,
2877 Node* top_address, Node* limit_address);
2878 Node* AllocateRawUnaligned(Node* size_in_bytes, AllocationFlags flags,
2879 Node* top_adddress, Node* limit_address);
2880 Node* AllocateRaw(Node* size_in_bytes, AllocationFlags flags,
2881 Node* top_address, Node* limit_address);
2884 Node* AllocateUninitializedJSArray(Node* array_map, Node* length,
2885 Node* allocation_site,
2886 Node* size_in_bytes);
2889 Node* SmiShiftBitsConstant();
2893 Node* EmitKeyedSloppyArguments(Node* receiver, Node* key, Node* value,
2907 Node* SelectImpl(TNode<BoolT> condition, const NodeGenerator& true_body,
2920 void GenerateEqual_Same(Node* value, Label* if_equal, Label* if_notequal,
2922 TNode<String> AllocAndCopyStringCharacters(Node* from,
2923 Node* from_instance_type,
2930 Node* NonNumberToNumberOrNumeric(
2931 Node* context, Node* input, Object::Conversion mode,
2934 void TaggedToNumeric(Node* context, Node* value, Label* done,
2938 void TaggedToWord32OrBigIntImpl(Node* context, Node* value, Label* if_number,
2947 typedef compiler::Node Node;
2957 CodeStubArguments(CodeStubAssembler* assembler, Node* argc,
2965 CodeStubArguments(CodeStubAssembler* assembler, Node* argc, Node* fp,
2976 Node* index, CodeStubAssembler::ParameterMode mode =
2980 TNode<Object> AtIndex(Node* index,
2992 Node* GetLength(CodeStubAssembler::ParameterMode mode) const {
3007 typedef std::function<void(Node* arg)> ForEachBodyFunction;
3010 void ForEach(const ForEachBodyFunction& body, Node* first = nullptr,
3011 Node* last = nullptr,
3020 const ForEachBodyFunction& body, Node* first = nullptr,
3021 Node* last = nullptr,
3025 void PopAndReturn(Node* value);
3028 Node* GetArguments();
3033 Node* argc_;
3035 Node* fp_;
3048 ToDirectStringAssembler(compiler::CodeAssemblerState* state, Node* string,
3069 Node* string() { return var_string_.value(); }
3070 Node* instance_type() { return var_instance_type_.value(); }
3074 Node* is_external() { return var_is_external_.value(); }