• Home
  • Raw
  • Download

Lines Matching refs:expr

338 void AstTyper::VisitFunctionLiteral(FunctionLiteral* expr) {}  in VisitFunctionLiteral()  argument
341 void AstTyper::VisitClassLiteral(ClassLiteral* expr) {} in VisitClassLiteral() argument
344 void AstTyper::VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) { in VisitNativeFunctionLiteral() argument
348 void AstTyper::VisitDoExpression(DoExpression* expr) { in VisitDoExpression() argument
349 RECURSE(VisitBlock(expr->block())); in VisitDoExpression()
350 RECURSE(VisitVariableProxy(expr->result())); in VisitDoExpression()
351 NarrowType(expr, bounds_->get(expr->result())); in VisitDoExpression()
355 void AstTyper::VisitConditional(Conditional* expr) { in VisitConditional() argument
357 expr->condition()->RecordToBooleanTypeFeedback(oracle()); in VisitConditional()
359 RECURSE(Visit(expr->condition())); in VisitConditional()
361 RECURSE(Visit(expr->then_expression())); in VisitConditional()
364 RECURSE(Visit(expr->else_expression())); in VisitConditional()
369 NarrowType(expr, in VisitConditional()
370 AstBounds::Either(bounds_->get(expr->then_expression()), in VisitConditional()
371 bounds_->get(expr->else_expression()), zone())); in VisitConditional()
375 void AstTyper::VisitVariableProxy(VariableProxy* expr) { in VisitVariableProxy() argument
376 Variable* var = expr->var(); in VisitVariableProxy()
378 NarrowType(expr, store_.LookupBounds(variable_index(var))); in VisitVariableProxy()
383 void AstTyper::VisitLiteral(Literal* expr) { in VisitLiteral() argument
384 AstType* type = AstType::Constant(expr->value(), zone()); in VisitLiteral()
385 NarrowType(expr, AstBounds(type)); in VisitLiteral()
389 void AstTyper::VisitRegExpLiteral(RegExpLiteral* expr) { in VisitRegExpLiteral() argument
391 NarrowType(expr, AstBounds(AstType::Object())); in VisitRegExpLiteral()
395 void AstTyper::VisitObjectLiteral(ObjectLiteral* expr) { in VisitObjectLiteral() argument
396 ZoneList<ObjectLiteral::Property*>* properties = expr->properties(); in VisitObjectLiteral()
419 NarrowType(expr, AstBounds(AstType::Object())); in VisitObjectLiteral()
423 void AstTyper::VisitArrayLiteral(ArrayLiteral* expr) { in VisitArrayLiteral() argument
424 ZoneList<Expression*>* values = expr->values(); in VisitArrayLiteral()
430 NarrowType(expr, AstBounds(AstType::Object())); in VisitArrayLiteral()
434 void AstTyper::VisitAssignment(Assignment* expr) { in VisitAssignment() argument
436 Property* prop = expr->target()->AsProperty(); in VisitAssignment()
438 FeedbackSlot slot = expr->AssignmentSlot(); in VisitAssignment()
439 expr->set_is_uninitialized(oracle()->StoreIsUninitialized(slot)); in VisitAssignment()
440 if (!expr->IsUninitialized()) { in VisitAssignment()
441 SmallMapList* receiver_types = expr->GetReceiverTypes(); in VisitAssignment()
452 expr->set_store_mode(store_mode); in VisitAssignment()
453 expr->set_key_type(key_type); in VisitAssignment()
459 expr->is_compound() ? expr->binary_operation() : expr->value(); in VisitAssignment()
460 RECURSE(Visit(expr->target())); in VisitAssignment()
462 NarrowType(expr, bounds_->get(rhs)); in VisitAssignment()
464 VariableProxy* proxy = expr->target()->AsVariableProxy(); in VisitAssignment()
466 store_.Seq(variable_index(proxy->var()), Effect(bounds_->get(expr))); in VisitAssignment()
471 void AstTyper::VisitYield(Yield* expr) { in VisitYield() argument
472 RECURSE(Visit(expr->generator_object())); in VisitYield()
473 RECURSE(Visit(expr->expression())); in VisitYield()
479 void AstTyper::VisitThrow(Throw* expr) { in VisitThrow() argument
480 RECURSE(Visit(expr->exception())); in VisitThrow()
483 NarrowType(expr, AstBounds(AstType::None())); in VisitThrow()
487 void AstTyper::VisitProperty(Property* expr) { in VisitProperty() argument
489 FeedbackSlot slot = expr->PropertyFeedbackSlot(); in VisitProperty()
490 expr->set_inline_cache_state(oracle()->LoadInlineCacheState(slot)); in VisitProperty()
492 if (!expr->IsUninitialized()) { in VisitProperty()
493 if (expr->key()->IsPropertyName()) { in VisitProperty()
494 Literal* lit_key = expr->key()->AsLiteral(); in VisitProperty()
497 oracle()->PropertyReceiverTypes(slot, name, expr->GetReceiverTypes()); in VisitProperty()
501 oracle()->KeyedPropertyReceiverTypes(slot, expr->GetReceiverTypes(), in VisitProperty()
503 expr->set_is_string_access(is_string); in VisitProperty()
504 expr->set_key_type(key_type); in VisitProperty()
508 RECURSE(Visit(expr->obj())); in VisitProperty()
509 RECURSE(Visit(expr->key())); in VisitProperty()
515 void AstTyper::VisitCall(Call* expr) { in VisitCall() argument
517 RECURSE(Visit(expr->expression())); in VisitCall()
518 FeedbackSlot slot = expr->CallFeedbackICSlot(); in VisitCall()
520 if (!expr->expression()->IsProperty() && oracle()->CallIsMonomorphic(slot)) { in VisitCall()
521 expr->set_target(oracle()->GetCallTarget(slot)); in VisitCall()
523 expr->set_allocation_site(site); in VisitCall()
526 expr->set_is_uninitialized(is_uninitialized); in VisitCall()
528 ZoneList<Expression*>* args = expr->arguments(); in VisitCall()
534 if (expr->is_possibly_eval()) { in VisitCall()
542 void AstTyper::VisitCallNew(CallNew* expr) { in VisitCallNew() argument
544 FeedbackSlot allocation_site_feedback_slot = expr->CallNewFeedbackSlot(); in VisitCallNew()
545 expr->set_allocation_site( in VisitCallNew()
548 oracle()->CallNewIsMonomorphic(expr->CallNewFeedbackSlot()); in VisitCallNew()
549 expr->set_is_monomorphic(monomorphic); in VisitCallNew()
551 expr->set_target(oracle()->GetCallNewTarget(expr->CallNewFeedbackSlot())); in VisitCallNew()
554 RECURSE(Visit(expr->expression())); in VisitCallNew()
555 ZoneList<Expression*>* args = expr->arguments(); in VisitCallNew()
561 NarrowType(expr, AstBounds(AstType::None(), AstType::Receiver())); in VisitCallNew()
565 void AstTyper::VisitCallRuntime(CallRuntime* expr) { in VisitCallRuntime() argument
566 ZoneList<Expression*>* args = expr->arguments(); in VisitCallRuntime()
576 void AstTyper::VisitUnaryOperation(UnaryOperation* expr) { in VisitUnaryOperation() argument
578 if (expr->op() == Token::NOT) { in VisitUnaryOperation()
580 expr->expression()->RecordToBooleanTypeFeedback(oracle()); in VisitUnaryOperation()
583 RECURSE(Visit(expr->expression())); in VisitUnaryOperation()
585 switch (expr->op()) { in VisitUnaryOperation()
588 NarrowType(expr, AstBounds(AstType::Boolean())); in VisitUnaryOperation()
591 NarrowType(expr, AstBounds(AstType::Undefined())); in VisitUnaryOperation()
594 NarrowType(expr, AstBounds(AstType::InternalizedString())); in VisitUnaryOperation()
602 void AstTyper::VisitCountOperation(CountOperation* expr) { in VisitCountOperation() argument
604 FeedbackSlot slot = expr->CountSlot(); in VisitCountOperation()
608 oracle()->CountReceiverTypes(slot, expr->GetReceiverTypes()); in VisitCountOperation()
609 expr->set_store_mode(store_mode); in VisitCountOperation()
610 expr->set_key_type(key_type); in VisitCountOperation()
611 expr->set_type(oracle()->CountType(expr->CountBinOpFeedbackId(), in VisitCountOperation()
612 expr->CountBinaryOpFeedbackSlot())); in VisitCountOperation()
615 RECURSE(Visit(expr->expression())); in VisitCountOperation()
617 NarrowType(expr, AstBounds(AstType::SignedSmall(), AstType::Number())); in VisitCountOperation()
619 VariableProxy* proxy = expr->expression()->AsVariableProxy(); in VisitCountOperation()
621 store_.Seq(variable_index(proxy->var()), Effect(bounds_->get(expr))); in VisitCountOperation()
625 void AstTyper::VisitBinaryOperation(BinaryOperation* expr) { in VisitBinaryOperation() argument
632 oracle()->BinaryType(expr->BinaryOperationFeedbackId(), in VisitBinaryOperation()
633 expr->BinaryOperationFeedbackSlot(), &left_type, in VisitBinaryOperation()
635 expr->op()); in VisitBinaryOperation()
637 NarrowLowerType(expr, type); in VisitBinaryOperation()
638 NarrowLowerType(expr->left(), left_type); in VisitBinaryOperation()
639 NarrowLowerType(expr->right(), right_type); in VisitBinaryOperation()
640 expr->set_allocation_site(allocation_site); in VisitBinaryOperation()
641 expr->set_fixed_right_arg(fixed_right_arg); in VisitBinaryOperation()
642 if (expr->op() == Token::OR || expr->op() == Token::AND) { in VisitBinaryOperation()
643 expr->left()->RecordToBooleanTypeFeedback(oracle()); in VisitBinaryOperation()
646 switch (expr->op()) { in VisitBinaryOperation()
648 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
649 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
650 NarrowType(expr, bounds_->get(expr->right())); in VisitBinaryOperation()
655 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
658 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
663 NarrowType(expr, AstBounds::Either(bounds_->get(expr->left()), in VisitBinaryOperation()
664 bounds_->get(expr->right()), zone())); in VisitBinaryOperation()
669 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
670 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
672 AstType::Union(bounds_->get(expr->left()).upper, in VisitBinaryOperation()
673 bounds_->get(expr->right()).upper, zone()); in VisitBinaryOperation()
677 NarrowType(expr, AstBounds(lower, upper)); in VisitBinaryOperation()
683 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
684 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
685 NarrowType(expr, AstBounds(AstType::SignedSmall(), AstType::Signed32())); in VisitBinaryOperation()
688 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
689 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
693 NarrowType(expr, AstBounds(AstType::SignedSmall(), AstType::Number())); in VisitBinaryOperation()
696 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
697 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
698 AstBounds l = bounds_->get(expr->left()); in VisitBinaryOperation()
699 AstBounds r = bounds_->get(expr->right()); in VisitBinaryOperation()
715 NarrowType(expr, AstBounds(lower, upper)); in VisitBinaryOperation()
722 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
723 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
724 NarrowType(expr, AstBounds(AstType::SignedSmall(), AstType::Number())); in VisitBinaryOperation()
732 void AstTyper::VisitCompareOperation(CompareOperation* expr) { in VisitCompareOperation() argument
737 oracle()->CompareType(expr->CompareOperationFeedbackId(), in VisitCompareOperation()
738 expr->CompareOperationFeedbackSlot(), &left_type, in VisitCompareOperation()
740 NarrowLowerType(expr->left(), left_type); in VisitCompareOperation()
741 NarrowLowerType(expr->right(), right_type); in VisitCompareOperation()
742 expr->set_combined_type(combined_type); in VisitCompareOperation()
744 RECURSE(Visit(expr->left())); in VisitCompareOperation()
745 RECURSE(Visit(expr->right())); in VisitCompareOperation()
747 NarrowType(expr, AstBounds(AstType::Boolean())); in VisitCompareOperation()
751 void AstTyper::VisitSpread(Spread* expr) { UNREACHABLE(); } in VisitSpread() argument
754 void AstTyper::VisitEmptyParentheses(EmptyParentheses* expr) { in VisitEmptyParentheses() argument
758 void AstTyper::VisitGetIterator(GetIterator* expr) { UNREACHABLE(); } in VisitGetIterator() argument
760 void AstTyper::VisitThisFunction(ThisFunction* expr) {} in VisitThisFunction() argument
763 void AstTyper::VisitSuperPropertyReference(SuperPropertyReference* expr) {} in VisitSuperPropertyReference() argument
766 void AstTyper::VisitSuperCallReference(SuperCallReference* expr) {} in VisitSuperCallReference() argument
769 void AstTyper::VisitRewritableExpression(RewritableExpression* expr) { in VisitRewritableExpression() argument
770 Visit(expr->expression()); in VisitRewritableExpression()