Lines Matching defs:expr
27 void BreakableStatementChecker::Check(Expression* expr) {
28 Visit(expr);
181 void BreakableStatementChecker::VisitFunctionLiteral(FunctionLiteral* expr) {
185 void BreakableStatementChecker::VisitClassLiteral(ClassLiteral* expr) {
186 if (expr->extends() != NULL) {
187 Visit(expr->extends());
193 NativeFunctionLiteral* expr) {
197 void BreakableStatementChecker::VisitConditional(Conditional* expr) {
201 void BreakableStatementChecker::VisitVariableProxy(VariableProxy* expr) {
205 void BreakableStatementChecker::VisitLiteral(Literal* expr) {
209 void BreakableStatementChecker::VisitRegExpLiteral(RegExpLiteral* expr) {
213 void BreakableStatementChecker::VisitObjectLiteral(ObjectLiteral* expr) {
217 void BreakableStatementChecker::VisitArrayLiteral(ArrayLiteral* expr) {
221 void BreakableStatementChecker::VisitAssignment(Assignment* expr) {
224 VariableProxy* proxy = expr->target()->AsVariableProxy();
225 Property* prop = expr->target()->AsProperty();
232 Visit(expr->value());
236 void BreakableStatementChecker::VisitYield(Yield* expr) {
238 Visit(expr->expression());
242 void BreakableStatementChecker::VisitThrow(Throw* expr) {
244 Visit(expr->exception());
248 void BreakableStatementChecker::VisitProperty(Property* expr) {
254 void BreakableStatementChecker::VisitCall(Call* expr) {
260 void BreakableStatementChecker::VisitCallNew(CallNew* expr) {
266 void BreakableStatementChecker::VisitCallRuntime(CallRuntime* expr) {
270 void BreakableStatementChecker::VisitUnaryOperation(UnaryOperation* expr) {
271 Visit(expr->expression());
275 void BreakableStatementChecker::VisitCountOperation(CountOperation* expr) {
276 Visit(expr->expression());
280 void BreakableStatementChecker::VisitBinaryOperation(BinaryOperation* expr) {
281 Visit(expr->left());
282 if (expr->op() != Token::AND &&
283 expr->op() != Token::OR) {
284 Visit(expr->right());
289 void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) {
290 Visit(expr->left());
291 Visit(expr->right());
295 void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) {
299 void BreakableStatementChecker::VisitSuperReference(SuperReference* expr) {}
840 void FullCodeGenerator::SetExpressionPosition(Expression* expr) {
842 CodeGenerator::RecordPositions(masm_, expr->position());
847 checker.Check(expr);
856 masm_, expr->position(), !checker.is_breakable());
896 void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) {
897 const Runtime::Function* function = expr->function();
902 ((*this).*(generator))(expr);
906 void FullCodeGenerator::EmitGeneratorNext(CallRuntime* expr) {
907 ZoneList<Expression*>* args = expr->arguments();
913 void FullCodeGenerator::EmitGeneratorThrow(CallRuntime* expr) {
914 ZoneList<Expression*>* args = expr->arguments();
920 void FullCodeGenerator::EmitDebugBreakInOptimizedCode(CallRuntime* expr) {
925 void FullCodeGenerator::VisitBinaryOperation(BinaryOperation* expr) {
926 switch (expr->op()) {
928 return VisitComma(expr);
931 return VisitLogicalExpression(expr);
933 return VisitArithmeticExpression(expr);
938 void FullCodeGenerator::VisitInDuplicateContext(Expression* expr) {
940 VisitForEffect(expr);
942 VisitForAccumulatorValue(expr);
944 VisitForStackValue(expr);
947 VisitForControl(expr, test->true_label(), test->false_label(),
953 void FullCodeGenerator::VisitComma(BinaryOperation* expr) {
955 VisitForEffect(expr->left());
956 VisitInDuplicateContext(expr->right());
960 void FullCodeGenerator::VisitLogicalExpression(BinaryOperation* expr) {
961 bool is_logical_and = expr->op() == Token::AND;
963 Expression* left = expr->left();
964 Expression* right = expr->right();
965 BailoutId right_id = expr->RightId();
1029 void FullCodeGenerator::VisitArithmeticExpression(BinaryOperation* expr) {
1030 Token::Value op = expr->op();
1032 Expression* left = expr->left();
1033 Expression* right = expr->right();
1042 SetSourcePosition(expr->position());
1044 EmitInlineSmiBinaryOp(expr, op, mode, left, right);
1046 EmitBinaryOp(expr, op, mode);
1225 Expression* expr = stmt->expression();
1226 VisitForAccumulatorValue(expr);
1494 void FullCodeGenerator::VisitConditional(Conditional* expr) {
1497 VisitForControl(expr->condition(), &true_case, &false_case, &true_case);
1499 PrepareForBailoutForId(expr->ThenId(), NO_REGISTERS);
1501 SetExpressionPosition(expr->then_expression());
1504 VisitForControl(expr->then_expression(),
1509 VisitInDuplicateContext(expr->then_expression());
1513 PrepareForBailoutForId(expr->ElseId(), NO_REGISTERS);
1515 SetExpressionPosition(expr->else_expression());
1516 VisitInDuplicateContext(expr->else_expression());
1524 void FullCodeGenerator::VisitLiteral(Literal* expr) {
1526 context()->Plug(expr->value());
1530 void FullCodeGenerator::VisitFunctionLiteral(FunctionLiteral* expr) {
1535 Compiler::BuildFunctionInfo(expr, script(), info_);
1540 EmitNewClosure(function_info, expr->pretenure());
1544 void FullCodeGenerator::VisitClassLiteral(ClassLiteral* expr) {
1547 if (expr->extends() != NULL) {
1548 VisitForEffect(expr->extends());
1555 NativeFunctionLiteral* expr) {
1559 Handle<String> name = expr->name();
1561 expr->extension()->GetNativeFunctionTemplate(
1586 void FullCodeGenerator::VisitThrow(Throw* expr) {
1588 VisitForStackValue(expr->exception());
1605 bool FullCodeGenerator::TryLiteralCompare(CompareOperation* expr) {
1608 if (expr->IsLiteralCompareTypeof(&sub_expr, &check)) {
1609 EmitLiteralCompareTypeof(expr, sub_expr, check);
1613 if (expr->IsLiteralCompareUndefined(&sub_expr, isolate())) {
1614 EmitLiteralCompareNil(expr, sub_expr, kUndefinedValue);
1618 if (expr->IsLiteralCompareNull(&sub_expr)) {
1619 EmitLiteralCompareNil(expr, sub_expr, kNullValue);