Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: src/ast.cc

Issue 7824038: Remove variable rewrites and the unneccesary Slot class. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 30 matching lines...) Expand all
41 identifier_proxy_(Isolate::Current(), false), 41 identifier_proxy_(Isolate::Current(), false),
42 valid_left_hand_side_sentinel_(Isolate::Current()), 42 valid_left_hand_side_sentinel_(Isolate::Current()),
43 this_property_(Isolate::Current(), &this_proxy_, NULL, 0), 43 this_property_(Isolate::Current(), &this_proxy_, NULL, 0),
44 call_sentinel_(Isolate::Current(), NULL, NULL, 0) { 44 call_sentinel_(Isolate::Current(), NULL, NULL, 0) {
45 } 45 }
46 46
47 47
48 // ---------------------------------------------------------------------------- 48 // ----------------------------------------------------------------------------
49 // All the Accept member functions for each syntax tree node type. 49 // All the Accept member functions for each syntax tree node type.
50 50
51 void Slot::Accept(AstVisitor* v) { v->VisitSlot(this); }
52
53 #define DECL_ACCEPT(type) \ 51 #define DECL_ACCEPT(type) \
54 void type::Accept(AstVisitor* v) { v->Visit##type(this); } 52 void type::Accept(AstVisitor* v) { v->Visit##type(this); }
55 AST_NODE_LIST(DECL_ACCEPT) 53 AST_NODE_LIST(DECL_ACCEPT)
56 #undef DECL_ACCEPT 54 #undef DECL_ACCEPT
57 55
58 56
59 // ---------------------------------------------------------------------------- 57 // ----------------------------------------------------------------------------
60 // Implementation of other node functionality. 58 // Implementation of other node functionality.
61 59
62 Assignment* ExpressionStatement::StatementAsSimpleAssignment() { 60 Assignment* ExpressionStatement::StatementAsSimpleAssignment() {
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 return proxy()->var()->IsStackAllocated() && fun() == NULL; 405 return proxy()->var()->IsStackAllocated() && fun() == NULL;
408 } 406 }
409 407
410 408
411 bool TargetCollector::IsInlineable() const { 409 bool TargetCollector::IsInlineable() const {
412 UNREACHABLE(); 410 UNREACHABLE();
413 return false; 411 return false;
414 } 412 }
415 413
416 414
417 bool Slot::IsInlineable() const {
418 UNREACHABLE();
419 return false;
420 }
421
422
423 bool ForInStatement::IsInlineable() const { 415 bool ForInStatement::IsInlineable() const {
424 return false; 416 return false;
425 } 417 }
426 418
427 419
428 bool WithStatement::IsInlineable() const { 420 bool WithStatement::IsInlineable() const {
429 return false; 421 return false;
430 } 422 }
431 423
432 424
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 } 551 }
560 552
561 553
562 bool Conditional::IsInlineable() const { 554 bool Conditional::IsInlineable() const {
563 return condition()->IsInlineable() && then_expression()->IsInlineable() && 555 return condition()->IsInlineable() && then_expression()->IsInlineable() &&
564 else_expression()->IsInlineable(); 556 else_expression()->IsInlineable();
565 } 557 }
566 558
567 559
568 bool VariableProxy::IsInlineable() const { 560 bool VariableProxy::IsInlineable() const {
569 return var()->is_global() || var()->IsStackAllocated(); 561 return var()->IsUnallocated() || var()->IsStackAllocated();
570 } 562 }
571 563
572 564
573 bool Assignment::IsInlineable() const { 565 bool Assignment::IsInlineable() const {
574 return target()->IsInlineable() && value()->IsInlineable(); 566 return target()->IsInlineable() && value()->IsInlineable();
575 } 567 }
576 568
577 569
578 bool Property::IsInlineable() const { 570 bool Property::IsInlineable() const {
579 return obj()->IsInlineable() && key()->IsInlineable(); 571 return obj()->IsInlineable() && key()->IsInlineable();
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 int pos) 1198 int pos)
1207 : label_(label), 1199 : label_(label),
1208 statements_(statements), 1200 statements_(statements),
1209 position_(pos), 1201 position_(pos),
1210 compare_type_(NONE), 1202 compare_type_(NONE),
1211 compare_id_(AstNode::GetNextId(isolate)), 1203 compare_id_(AstNode::GetNextId(isolate)),
1212 entry_id_(AstNode::GetNextId(isolate)) { 1204 entry_id_(AstNode::GetNextId(isolate)) {
1213 } 1205 }
1214 1206
1215 } } // namespace v8::internal 1207 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698