• Home
  • Raw
  • Download

Lines Matching refs:expr

343 void AstTyper::VisitFunctionLiteral(FunctionLiteral* expr) {}  in VisitFunctionLiteral()  argument
346 void AstTyper::VisitClassLiteral(ClassLiteral* expr) {} in VisitClassLiteral() argument
349 void AstTyper::VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) { in VisitNativeFunctionLiteral() argument
353 void AstTyper::VisitDoExpression(DoExpression* expr) { in VisitDoExpression() argument
354 RECURSE(VisitBlock(expr->block())); in VisitDoExpression()
355 RECURSE(VisitVariableProxy(expr->result())); in VisitDoExpression()
356 NarrowType(expr, expr->result()->bounds()); in VisitDoExpression()
360 void AstTyper::VisitConditional(Conditional* expr) { in VisitConditional() argument
362 expr->condition()->RecordToBooleanTypeFeedback(oracle()); in VisitConditional()
364 RECURSE(Visit(expr->condition())); in VisitConditional()
366 RECURSE(Visit(expr->then_expression())); in VisitConditional()
369 RECURSE(Visit(expr->else_expression())); in VisitConditional()
374 NarrowType(expr, Bounds::Either( in VisitConditional()
375 expr->then_expression()->bounds(), in VisitConditional()
376 expr->else_expression()->bounds(), zone())); in VisitConditional()
380 void AstTyper::VisitVariableProxy(VariableProxy* expr) { in VisitVariableProxy() argument
381 Variable* var = expr->var(); in VisitVariableProxy()
383 NarrowType(expr, store_.LookupBounds(variable_index(var))); in VisitVariableProxy()
388 void AstTyper::VisitLiteral(Literal* expr) { in VisitLiteral() argument
389 Type* type = Type::Constant(expr->value(), zone()); in VisitLiteral()
390 NarrowType(expr, Bounds(type)); in VisitLiteral()
394 void AstTyper::VisitRegExpLiteral(RegExpLiteral* expr) { in VisitRegExpLiteral() argument
396 NarrowType(expr, Bounds(Type::Object(zone()))); in VisitRegExpLiteral()
400 void AstTyper::VisitObjectLiteral(ObjectLiteral* expr) { in VisitObjectLiteral() argument
401 ZoneList<ObjectLiteral::Property*>* properties = expr->properties(); in VisitObjectLiteral()
424 NarrowType(expr, Bounds(Type::Object(zone()))); in VisitObjectLiteral()
428 void AstTyper::VisitArrayLiteral(ArrayLiteral* expr) { in VisitArrayLiteral() argument
429 ZoneList<Expression*>* values = expr->values(); in VisitArrayLiteral()
435 NarrowType(expr, Bounds(Type::Object(zone()))); in VisitArrayLiteral()
439 void AstTyper::VisitAssignment(Assignment* expr) { in VisitAssignment() argument
441 Property* prop = expr->target()->AsProperty(); in VisitAssignment()
443 FeedbackVectorSlot slot = expr->AssignmentSlot(); in VisitAssignment()
444 expr->set_is_uninitialized(oracle()->StoreIsUninitialized(slot)); in VisitAssignment()
445 if (!expr->IsUninitialized()) { in VisitAssignment()
446 SmallMapList* receiver_types = expr->GetReceiverTypes(); in VisitAssignment()
457 expr->set_store_mode(store_mode); in VisitAssignment()
458 expr->set_key_type(key_type); in VisitAssignment()
464 expr->is_compound() ? expr->binary_operation() : expr->value(); in VisitAssignment()
465 RECURSE(Visit(expr->target())); in VisitAssignment()
467 NarrowType(expr, rhs->bounds()); in VisitAssignment()
469 VariableProxy* proxy = expr->target()->AsVariableProxy(); in VisitAssignment()
471 store_.Seq(variable_index(proxy->var()), Effect(expr->bounds())); in VisitAssignment()
476 void AstTyper::VisitYield(Yield* expr) { in VisitYield() argument
477 RECURSE(Visit(expr->generator_object())); in VisitYield()
478 RECURSE(Visit(expr->expression())); in VisitYield()
484 void AstTyper::VisitThrow(Throw* expr) { in VisitThrow() argument
485 RECURSE(Visit(expr->exception())); in VisitThrow()
488 NarrowType(expr, Bounds(Type::None(zone()))); in VisitThrow()
492 void AstTyper::VisitProperty(Property* expr) { in VisitProperty() argument
494 FeedbackVectorSlot slot = expr->PropertyFeedbackSlot(); in VisitProperty()
495 expr->set_inline_cache_state(oracle()->LoadInlineCacheState(slot)); in VisitProperty()
497 if (!expr->IsUninitialized()) { in VisitProperty()
498 if (expr->key()->IsPropertyName()) { in VisitProperty()
499 Literal* lit_key = expr->key()->AsLiteral(); in VisitProperty()
502 oracle()->PropertyReceiverTypes(slot, name, expr->GetReceiverTypes()); in VisitProperty()
506 oracle()->KeyedPropertyReceiverTypes(slot, expr->GetReceiverTypes(), in VisitProperty()
508 expr->set_is_string_access(is_string); in VisitProperty()
509 expr->set_key_type(key_type); in VisitProperty()
513 RECURSE(Visit(expr->obj())); in VisitProperty()
514 RECURSE(Visit(expr->key())); in VisitProperty()
520 void AstTyper::VisitCall(Call* expr) { in VisitCall() argument
522 RECURSE(Visit(expr->expression())); in VisitCall()
524 if (expr->IsUsingCallFeedbackICSlot(isolate_)) { in VisitCall()
525 FeedbackVectorSlot slot = expr->CallFeedbackICSlot(); in VisitCall()
527 if (!expr->expression()->IsProperty() && in VisitCall()
529 expr->set_target(oracle()->GetCallTarget(slot)); in VisitCall()
531 expr->set_allocation_site(site); in VisitCall()
535 expr->set_is_uninitialized(is_uninitialized); in VisitCall()
537 ZoneList<Expression*>* args = expr->arguments(); in VisitCall()
543 VariableProxy* proxy = expr->expression()->AsVariableProxy(); in VisitCall()
552 void AstTyper::VisitCallNew(CallNew* expr) { in VisitCallNew() argument
555 expr->CallNewFeedbackSlot(); in VisitCallNew()
556 expr->set_allocation_site( in VisitCallNew()
559 oracle()->CallNewIsMonomorphic(expr->CallNewFeedbackSlot()); in VisitCallNew()
560 expr->set_is_monomorphic(monomorphic); in VisitCallNew()
562 expr->set_target(oracle()->GetCallNewTarget(expr->CallNewFeedbackSlot())); in VisitCallNew()
565 RECURSE(Visit(expr->expression())); in VisitCallNew()
566 ZoneList<Expression*>* args = expr->arguments(); in VisitCallNew()
572 NarrowType(expr, Bounds(Type::None(zone()), Type::Receiver(zone()))); in VisitCallNew()
576 void AstTyper::VisitCallRuntime(CallRuntime* expr) { in VisitCallRuntime() argument
577 ZoneList<Expression*>* args = expr->arguments(); in VisitCallRuntime()
587 void AstTyper::VisitUnaryOperation(UnaryOperation* expr) { in VisitUnaryOperation() argument
589 if (expr->op() == Token::NOT) { in VisitUnaryOperation()
591 expr->expression()->RecordToBooleanTypeFeedback(oracle()); in VisitUnaryOperation()
594 RECURSE(Visit(expr->expression())); in VisitUnaryOperation()
596 switch (expr->op()) { in VisitUnaryOperation()
599 NarrowType(expr, Bounds(Type::Boolean(zone()))); in VisitUnaryOperation()
602 NarrowType(expr, Bounds(Type::Undefined(zone()))); in VisitUnaryOperation()
605 NarrowType(expr, Bounds(Type::InternalizedString(zone()))); in VisitUnaryOperation()
613 void AstTyper::VisitCountOperation(CountOperation* expr) { in VisitCountOperation() argument
615 FeedbackVectorSlot slot = expr->CountSlot(); in VisitCountOperation()
619 oracle()->CountReceiverTypes(slot, expr->GetReceiverTypes()); in VisitCountOperation()
620 expr->set_store_mode(store_mode); in VisitCountOperation()
621 expr->set_key_type(key_type); in VisitCountOperation()
622 expr->set_type(oracle()->CountType(expr->CountBinOpFeedbackId())); in VisitCountOperation()
625 RECURSE(Visit(expr->expression())); in VisitCountOperation()
627 NarrowType(expr, Bounds(Type::SignedSmall(zone()), Type::Number(zone()))); in VisitCountOperation()
629 VariableProxy* proxy = expr->expression()->AsVariableProxy(); in VisitCountOperation()
631 store_.Seq(variable_index(proxy->var()), Effect(expr->bounds())); in VisitCountOperation()
636 void AstTyper::VisitBinaryOperation(BinaryOperation* expr) { in VisitBinaryOperation() argument
643 oracle()->BinaryType(expr->BinaryOperationFeedbackId(), in VisitBinaryOperation()
645 &allocation_site, expr->op()); in VisitBinaryOperation()
646 NarrowLowerType(expr, type); in VisitBinaryOperation()
647 NarrowLowerType(expr->left(), left_type); in VisitBinaryOperation()
648 NarrowLowerType(expr->right(), right_type); in VisitBinaryOperation()
649 expr->set_allocation_site(allocation_site); in VisitBinaryOperation()
650 expr->set_fixed_right_arg(fixed_right_arg); in VisitBinaryOperation()
651 if (expr->op() == Token::OR || expr->op() == Token::AND) { in VisitBinaryOperation()
652 expr->left()->RecordToBooleanTypeFeedback(oracle()); in VisitBinaryOperation()
655 switch (expr->op()) { in VisitBinaryOperation()
657 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
658 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
659 NarrowType(expr, expr->right()->bounds()); in VisitBinaryOperation()
664 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
667 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
672 NarrowType(expr, Bounds::Either( in VisitBinaryOperation()
673 expr->left()->bounds(), expr->right()->bounds(), zone())); in VisitBinaryOperation()
678 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
679 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
681 expr->left()->bounds().upper, expr->right()->bounds().upper, zone()); in VisitBinaryOperation()
684 NarrowType(expr, Bounds(lower, upper)); in VisitBinaryOperation()
690 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
691 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
692 NarrowType(expr, in VisitBinaryOperation()
696 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
697 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
701 NarrowType(expr, Bounds(Type::SignedSmall(zone()), Type::Number(zone()))); in VisitBinaryOperation()
704 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
705 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
706 Bounds l = expr->left()->bounds(); in VisitBinaryOperation()
707 Bounds r = expr->right()->bounds(); in VisitBinaryOperation()
720 NarrowType(expr, Bounds(lower, upper)); in VisitBinaryOperation()
727 RECURSE(Visit(expr->left())); in VisitBinaryOperation()
728 RECURSE(Visit(expr->right())); in VisitBinaryOperation()
729 NarrowType(expr, Bounds(Type::SignedSmall(zone()), Type::Number(zone()))); in VisitBinaryOperation()
737 void AstTyper::VisitCompareOperation(CompareOperation* expr) { in VisitCompareOperation() argument
742 oracle()->CompareType(expr->CompareOperationFeedbackId(), in VisitCompareOperation()
744 NarrowLowerType(expr->left(), left_type); in VisitCompareOperation()
745 NarrowLowerType(expr->right(), right_type); in VisitCompareOperation()
746 expr->set_combined_type(combined_type); in VisitCompareOperation()
748 RECURSE(Visit(expr->left())); in VisitCompareOperation()
749 RECURSE(Visit(expr->right())); in VisitCompareOperation()
751 NarrowType(expr, Bounds(Type::Boolean(zone()))); in VisitCompareOperation()
755 void AstTyper::VisitSpread(Spread* expr) { RECURSE(Visit(expr->expression())); } in VisitSpread() argument
758 void AstTyper::VisitEmptyParentheses(EmptyParentheses* expr) { in VisitEmptyParentheses() argument
763 void AstTyper::VisitThisFunction(ThisFunction* expr) { in VisitThisFunction() argument
767 void AstTyper::VisitSuperPropertyReference(SuperPropertyReference* expr) {} in VisitSuperPropertyReference() argument
770 void AstTyper::VisitSuperCallReference(SuperCallReference* expr) {} in VisitSuperCallReference() argument
774 RewritableAssignmentExpression* expr) { in VisitRewritableAssignmentExpression() argument
775 Visit(expr->expression()); in VisitRewritableAssignmentExpression()