Lines Matching refs:environment
57 Environment* environment() const { return owner_->environment(); }
117 depth_(builder_->environment()->context_chain_length()) {
118 builder_->environment()->PushContext(context); // Push.
124 builder_->environment()->PopContext();
125 CHECK_EQ(depth_, builder_->environment()->context_chain_length());
151 context_length_(builder->environment()->context_chain_length()),
152 stack_height_(builder->environment()->stack_height()) {
176 // this also drops extra operands from the environment for each skipped scope.
197 Environment* environment() { return builder_->environment(); }
398 : builder_->environment()->Checkpoint(id_before);
415 : builder_->environment()->Checkpoint(id_after, combine);
523 // Initialize the top-level environment.
524 Environment env(this, scope, graph()->start());
528 // Use OSR normal entry as the start of the top-level environment.
668 AstGraphBuilder::Environment::Environment(AstGraphBuilder* builder,
698 // index 0 in the environment).
712 AstGraphBuilder::Environment::Environment(AstGraphBuilder::Environment* copy,
734 void AstGraphBuilder::Environment::Bind(Variable* variable, Node* node) {
738 // index -1 but located at index 0 in the environment).
751 Node* AstGraphBuilder::Environment::Lookup(Variable* variable) {
755 // index -1 but located at index 0 in the environment).
768 void AstGraphBuilder::Environment::MarkAllLocalsLive() {
778 void AstGraphBuilder::Environment::RawParameterBind(int index, Node* node) {
784 Node* AstGraphBuilder::Environment::RawParameterLookup(int index) {
790 AstGraphBuilder::Environment*
791 AstGraphBuilder::Environment::CopyForConditional() {
798 return new (zone()) Environment(this, copy_liveness_block);
802 AstGraphBuilder::Environment*
803 AstGraphBuilder::Environment::CopyAsUnreachable() {
804 Environment* env = new (zone()) Environment(this, nullptr);
810 AstGraphBuilder::Environment*
811 AstGraphBuilder::Environment::CopyAndShareLiveness() {
816 Environment* env = new (zone()) Environment(this, liveness_block());
821 AstGraphBuilder::Environment* AstGraphBuilder::Environment::CopyForLoop(
828 void AstGraphBuilder::Environment::UpdateStateValues(Node** state_values,
850 void AstGraphBuilder::Environment::UpdateStateValuesWithCache(
858 Node* AstGraphBuilder::Environment::Checkpoint(
885 bool AstGraphBuilder::Environment::IsLivenessAnalysisEnabled() {
891 bool AstGraphBuilder::Environment::IsLivenessBlockConsistent() {
902 original_height_ = environment()->stack_height();
913 DCHECK(environment()->stack_height() == original_height_);
918 DCHECK(environment()->stack_height() == original_height_ + 1);
923 DCHECK(environment()->stack_height() == original_height_ + 1);
933 environment()->Push(value);
938 environment()->Push(owner()->BuildToBoolean(value, feedback_id_));
946 return environment()->Pop();
951 return environment()->Pop();
961 return environment()->Context();
968 Environment* env = environment()->CopyAsUnreachable();
971 environment()->TrimStack(current->stack_height());
972 environment
1003 return environment()->Push(jsgraph()->NullConstant());
1011 return environment()->Push(jsgraph()->TheHoleConstant());
1082 environment()->Bind(variable, value);
1114 Node* value = environment()->Pop();
1115 environment()->Bind(variable, value);
1120 Node* value = environment()->Pop();
1183 Node* condition = environment()->Pop();
1205 Node* result = environment()->Pop();
1212 Node* value = environment()->Pop();
1244 Node* label = environment()->Pop();
1245 Node* tag = environment()->Top();
1251 environment()->Pop();
1256 environment()->Pop();
1279 Node* condition = environment()->Pop();
1289 Node* condition = environment()->Pop();
1303 Node* condition = environment()->Pop();
1317 Node* object = environment()->Pop();
1330 environment()->Push(object);
1339 // Construct the rest of the environment.
1340 environment()->Push(cache_type);
1341 environment()->Push(cache_array);
1342 environment()->Push(cache_length);
1343 environment()->Push(jsgraph()->ZeroConstant());
1350 // from the environment.
1351 Node* index = environment()->Peek(0);
1352 Node* cache_length = environment()->Peek(1);
1353 Node* cache_array = environment()->Peek(2);
1354 Node* cache_type = environment()->Peek(3);
1355 Node* object = environment()->Peek(4);
1381 index = environment()->Peek(0);
1386 environment()->Poke(0, index);
1389 environment()->Drop(5);
1401 Node* condition = environment()->Pop();
1419 environment()->Push(current_context());
1421 environment()->Pop();
1431 environment()->Checkpoint(stmt->HandlerId())); // frame state.
1471 environment()->Push(current_context());
1473 environment()->Pop();
1483 environment()->Checkpoint(stmt->HandlerId())); // frame state.
1496 environment()->Push(token); // TODO(mstarzinger): Cook token!
1497 environment()->Push(result);
1498 environment()->Push(message);
1510 message = environment()->Pop();
1511 result = environment()->Pop();
1512 token = environment()->Pop(); // TODO(mstarzinger): Uncook token!
1527 environment()->MarkAllLocalsLive();
1564 environment()->Push(class_name);
1569 Node* constructor = environment()->Pop();
1570 Node* extends = environment()->Pop();
1571 Node* name = environment()->Pop();
1586 environment()->Push(literal);
1587 environment()->Push(prototype);
1592 environment()->Push(environment()->Peek(property->is_static() ? 1 : 0));
1595 Node* name = BuildToName(environment()->Pop(), expr->GetIdForProperty(i));
1596 environment()->Push(name);
1603 Node* check = BuildThrowIfStaticPrototype(environment()->Pop(),
1605 environment()->Push(check);
1609 Node* value = environment()->Pop();
1610 Node* key = environment()->Pop();
1611 Node* receiver = environment()->Pop();
1645 prototype = environment()->Pop();
1646 literal = environment()->Pop();
1680 Node* condition = environment()->Pop();
1731 environment()->Push(literal);
1755 Node* value = environment()->Pop();
1756 Node* literal = environment()->Top();
1769 environment()->Push(environment()->Top()); // Duplicate receiver.
1772 Node* value = environment()->Pop();
1773 Node* key = environment()->Pop();
1774 Node* receiver = environment()->Pop();
1787 environment()->Push(environment()->Top()); // Duplicate receiver.
1789 Node* value = environment()->Pop();
1790 Node* receiver = environment()->Pop();
1815 literal = environment()->Top(); // Reload from operand stack.
1821 Node* setter = environment()->Pop();
1822 Node* getter = environment()->Pop();
1823 Node* name = environment()->Pop();
1845 environment()->Push(environment()->Top()); // Duplicate receiver.
1847 Node* value = environment()->Pop();
1848 Node* receiver = environment()->Pop();
1856 environment()->Push(environment()->Top()); // Duplicate receiver.
1858 Node* name = BuildToName(environment()->Pop(),
1860 environment()->Push(name);
1862 Node* value = environment()->Pop();
1863 Node* key = environment()->Pop();
1864 Node* receiver = environment()->Pop();
1900 literal = environment()->Top(); // Reload from operand stack.
1907 ast_context()->ProduceValue(environment()->Pop());
1917 BuildSetHomeObject(environment()->Top(), home_object, property);
1935 environment()->Push(literal);
1949 Node* value = environment()->Pop();
1951 Node* literal = environment()->Top();
1971 Node* iterable = environment()->Pop();
1972 Node* array = environment()->Pop();
1980 Node* value = environment()->Pop();
1981 Node* array = environment()->Pop();
1988 environment()->Push(result);
1991 ast_context()->ProduceValue(environment()->Pop());
2009 environment()->Push(value);
2011 value = environment()->Pop();
2017 environment()->Push(value);
2020 Node* object = environment()->Pop();
2021 value = environment()->Pop();
2029 environment()->Push(value);
2033 Node* key = environment()->Pop();
2034 Node* object = environment()->Pop();
2035 value = environment()->Pop();
2042 environment()->Push(value);
2046 Node* home_object = environment()->Pop();
2047 Node* receiver = environment()->Pop();
2048 value = environment()->Pop();
2056 environment()->Push(value);
2061 Node* key = environment()->Pop();
2062 Node* home_object = environment()->Pop();
2063 Node* receiver = environment()->Pop();
2064 value = environment()->Pop();
2128 Node* object = environment()->Top();
2139 Node* key = environment()->Top();
2140 Node* object = environment()->Peek(1);
2150 Node* home_object = environment()->Top();
2151 Node* receiver = environment()->Peek(1);
2162 Node* key = environment()->Top();
2163 Node* home_object = environment()->Peek(1);
2164 Node* receiver = environment()->Peek(2);
2174 environment()->Push(old_value);
2179 Node* right = environment()->Pop();
2180 Node* left = environment()->Pop();
2187 environment()->Push(value);
2200 Node* value = environment()->Pop();
2210 Node* object = environment()->Pop();
2218 Node* key = environment()->Pop();
2219 Node* object = environment()->Pop();
2226 Node* home_object = environment()->Pop();
2227 Node* receiver = environment()->Pop();
2235 Node* key = environment()->Pop();
2236 Node* home_object = environment()->Pop();
2237 Node* receiver = environment()->Pop();
2258 Node* exception = environment()->Pop();
2275 Node* object = environment()->Pop();
2285 Node* key = environment()->Pop();
2286 Node* object = environment()->Pop();
2295 Node* home_object = environment()->Pop();
2296 Node* receiver = environment()->Pop();
2307 Node* key = environment()->Pop();
2308 Node* home_object = environment()->Pop();
2309 Node* receiver = environment()->Pop();
2361 Node* object = environment()->Top();
2369 receiver_value = environment()->Pop();
2379 Node* key = environment()->Pop();
2380 Node* object = environment()->Top();
2388 receiver_value = environment()->Pop();
2397 Node* home = environment()->Peek(1);
2398 Node* object = environment()->Top();
2407 receiver_value = environment()->Pop();
2408 environment()->Drop(1);
2417 environment()->Push(environment()->Top()); // Duplicate this_var.
2418 environment()->Push(environment()->Peek(2)); // Duplicate home_obj.
2420 Node* key = environment()->Pop();
2421 Node* home = environment()->Pop();
2422 Node* object = environment()->Pop();
2430 receiver_value = environment()->Pop();
2431 environment()->Drop(1);
2453 callee_value = environment()->Pop();
2461 environment()->Push(callee_value);
2462 environment()->Push(receiver_value);
2469 // callee value pushed onto the environment.
2473 // Extract callee and source string from the environment.
2474 Node* callee = environment()->Peek(arg_count + 1);
2475 Node* source = environment()->Peek(arg_count - 1);
2478 // provide a fully resolved callee to patch into the environment.
2489 // Patch callee on the environment.
2490 environment()->Poke(arg_count + 1, new_callee);
2499 environment()->Push(value->InputAt(0)); // The callee passed to the call.
2501 environment()->Drop(1);
2512 Node* this_function = environment()->Pop();
2516 environment()->Push(super_function);
2548 environment()->Push(environment()->Peek(args->length()));
2566 environment()->Push(callee_value);
2567 environment()->Push(receiver_value);
2639 environment()->Push(jsgraph()->ZeroConstant());
2659 Node* object = environment()->Top();
2673 Node* key = environment()->Top();
2674 Node* object = environment()->Peek(1);
2687 Node* home_object = environment()->Top();
2688 Node* receiver = environment()->Peek(1);
2703 Node* key = environment()->Top();
2704 Node* home_object = environment()->Peek(1);
2705 Node* receiver = environment()->Peek(2);
2724 environment()->Push(old_value);
2726 old_value = environment()->Pop();
2731 environment()->Poke(stack_depth, old_value);
2733 environment()->Push(old_value);
2756 environment()->Push(value);
2759 environment()->Pop();
2763 Node* object = environment()->Pop();
2766 environment()->Push(value);
2769 environment()->Pop();
2773 Node* key = environment()->Pop();
2774 Node* object = environment()->Pop();
2776 environment()->Push(value);
2779 environment()->Pop();
2783 Node* home_object = environment()->Pop();
2784 Node* receiver = environment()->Pop();
2787 environment()->Push(value);
2790 environment()->Pop();
2794 Node* key = environment()->Pop();
2795 Node* home_object = environment()->Pop();
2796 Node* receiver = environment()->Pop();
2798 environment()->Push(value);
2801 environment()->Pop();
2807 if (is_postfix) value = environment()->Pop();
2824 Node* right = environment()->Pop();
2825 Node* left = environment()->Pop();
2875 Node* right = environment()->Pop();
2876 Node* left = environment()->Pop();
2979 Node* key = environment()->Pop();
2980 Node* object = environment()->Pop();
3011 operand = environment()->Pop();
3020 Node* operand = environment()->Pop();
3039 Node* condition = environment()->Top();
3043 environment()->Pop();
3046 environment()->Pop();
3048 environment()->Poke(0, jsgraph()->TrueConstant());
3052 environment()->Pop();
3055 environment()->Pop();
3057 environment()->Poke(0, jsgraph()->FalseConstant());
3127 DCHECK(environment()->stack_height() >= arity);
3130 all[i] = environment()->Pop();
3146 Node* receiver = environment()->RawParameterLookup(0);
3159 Node* parameter = environment()->RawParameterLookup(i + 1);
3298 environment()->Push(error);
3300 environment()->Push(not_hole);
3302 return environment()->Pop();
3314 environment()->Push(for_hole);
3317 environment()->Push(error);
3319 return environment()->Pop();
3332 environment()->Push(error);
3334 environment()->Push(name);
3336 return environment()->Pop();
3361 Node* value = environment()->Lookup(variable);
3474 Node* current = environment()->Lookup(variable);
3490 Node* current = environment()->Lookup(variable);
3494 Node* current = environment()->Lookup(variable);
3504 Node* current = environment()->Lookup(variable);
3510 Node* current = environment()->Lookup(variable);
3518 environment()->Bind(variable, value);
3902 environment()->Push(jsgraph()->TheHoleConstant());
3904 environment()->Pop();
3922 environment()->Push(fast);
3924 environment()->Pop();
3931 environment()->Push(slow);
3934 return environment()->Pop();
3944 environment()->Push(jsgraph()->TheHoleConstant());
3946 environment()->Pop();
3966 environment()->Push(fast);
3968 environment()->Pop();
3975 environment()->Push(slow);
3978 return environment()->Pop();
4036 environment()->stack_height(), info()->osr_expr_stack_height()));
4051 node, 0, environment()->Checkpoint(ast_id, combine));
4114 if (!environment()->IsMarkedAsUnreachable()) {
4129 // Copy the environment for the success continuation.
4130 Environment* success_env = environment()->CopyForConditional();
4132 Node* effect = environment()->GetEffectDependency();
4153 if (environment()->IsMarkedAsUnreachable()) return;
4154 environment()->MarkAsUnreachable();
4159 void AstGraphBuilder::Environment::Merge(Environment* other) {
4163 // Nothing to do if the other environment is dead.
4166 // Resurrect a dead environment by copying the contents of the other one and
4195 // the current environment's control dependency accordingly.
4201 // the current environment's effect dependency accordingly.
4218 void AstGraphBuilder::Environment::PrepareForLoop(BitVector* assigned,
4271 // Rename all the contexts in the environment.