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

Side by Side Diff: src/compiler/typer.cc

Issue 2484003002: [builtins] implement JSBuiltinReducer for ArrayIteratorNext() (Closed)
Patch Set: fix tests when ignition is used Created 4 years, 1 month 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
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/compiler/types.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/typer.h" 5 #include "src/compiler/typer.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 8
9 #include "src/base/flags.h" 9 #include "src/base/flags.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 1096
1097 Type* Typer::Visitor::TypeJSCreateClosure(Node* node) { 1097 Type* Typer::Visitor::TypeJSCreateClosure(Node* node) {
1098 return Type::Function(); 1098 return Type::Function();
1099 } 1099 }
1100 1100
1101 1101
1102 Type* Typer::Visitor::TypeJSCreateIterResultObject(Node* node) { 1102 Type* Typer::Visitor::TypeJSCreateIterResultObject(Node* node) {
1103 return Type::OtherObject(); 1103 return Type::OtherObject();
1104 } 1104 }
1105 1105
1106 Type* Typer::Visitor::TypeJSCreateKeyValueArray(Node* node) {
1107 return Type::OtherObject();
1108 }
1106 1109
1107 Type* Typer::Visitor::TypeJSCreateLiteralArray(Node* node) { 1110 Type* Typer::Visitor::TypeJSCreateLiteralArray(Node* node) {
1108 return Type::OtherObject(); 1111 return Type::OtherObject();
1109 } 1112 }
1110 1113
1111 1114
1112 Type* Typer::Visitor::TypeJSCreateLiteralObject(Node* node) { 1115 Type* Typer::Visitor::TypeJSCreateLiteralObject(Node* node) {
1113 return Type::OtherObject(); 1116 return Type::OtherObject();
1114 } 1117 }
1115 1118
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 case kStringFromCharCode: 1380 case kStringFromCharCode:
1378 case kStringSubstr: 1381 case kStringSubstr:
1379 case kStringToLowerCase: 1382 case kStringToLowerCase:
1380 case kStringToUpperCase: 1383 case kStringToUpperCase:
1381 return Type::String(); 1384 return Type::String();
1382 1385
1383 case kStringIterator: 1386 case kStringIterator:
1384 case kStringIteratorNext: 1387 case kStringIteratorNext:
1385 return Type::OtherObject(); 1388 return Type::OtherObject();
1386 1389
1390 case kArrayEntries:
1391 case kArrayKeys:
1392 case kArrayValues:
1393 case kTypedArrayEntries:
1394 case kTypedArrayKeys:
1395 case kTypedArrayValues:
1396 case kArrayIteratorNext:
1397 return Type::OtherObject();
1398
1387 // Array functions. 1399 // Array functions.
1388 case kArrayIndexOf: 1400 case kArrayIndexOf:
1389 case kArrayLastIndexOf: 1401 case kArrayLastIndexOf:
1390 return Type::Range(-1, kMaxSafeInteger, t->zone()); 1402 return Type::Range(-1, kMaxSafeInteger, t->zone());
1391 case kArrayPush: 1403 case kArrayPush:
1392 return t->cache_.kPositiveSafeInteger; 1404 return t->cache_.kPositiveSafeInteger;
1393 // Object functions. 1405 // Object functions.
1394 case kObjectHasOwnProperty: 1406 case kObjectHasOwnProperty:
1395 return Type::Boolean(); 1407 return Type::Boolean();
1396 // Global functions. 1408 // Global functions.
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1739 Type* Typer::Visitor::TypeConstant(Handle<Object> value) { 1751 Type* Typer::Visitor::TypeConstant(Handle<Object> value) {
1740 if (Type::IsInteger(*value)) { 1752 if (Type::IsInteger(*value)) {
1741 return Type::Range(value->Number(), value->Number(), zone()); 1753 return Type::Range(value->Number(), value->Number(), zone());
1742 } 1754 }
1743 return Type::NewConstant(value, zone()); 1755 return Type::NewConstant(value, zone());
1744 } 1756 }
1745 1757
1746 } // namespace compiler 1758 } // namespace compiler
1747 } // namespace internal 1759 } // namespace internal
1748 } // namespace v8 1760 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/compiler/types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698