OLD | NEW |
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 "src/base/flags.h" | 7 #include "src/base/flags.h" |
8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" |
10 #include "src/compiler/common-operator.h" | 10 #include "src/compiler/common-operator.h" |
(...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1226 return Type::OtherObject(); | 1226 return Type::OtherObject(); |
1227 } | 1227 } |
1228 | 1228 |
1229 | 1229 |
1230 Type* Typer::Visitor::TypeJSCreateClosure(Node* node) { | 1230 Type* Typer::Visitor::TypeJSCreateClosure(Node* node) { |
1231 return Type::OtherObject(); | 1231 return Type::OtherObject(); |
1232 } | 1232 } |
1233 | 1233 |
1234 | 1234 |
1235 Type* Typer::Visitor::TypeJSCreateLiteralArray(Node* node) { | 1235 Type* Typer::Visitor::TypeJSCreateLiteralArray(Node* node) { |
1236 return Type::OtherObject(); | 1236 return Type::None(), Type::OtherObject(); |
1237 } | 1237 } |
1238 | 1238 |
1239 | 1239 |
1240 Type* Typer::Visitor::TypeJSCreateLiteralObject(Node* node) { | 1240 Type* Typer::Visitor::TypeJSCreateLiteralObject(Node* node) { |
1241 return Type::OtherObject(); | 1241 return Type::OtherObject(); |
1242 } | 1242 } |
1243 | 1243 |
1244 | |
1245 Type* Typer::Visitor::TypeJSCreateLiteralRegExp(Node* node) { | |
1246 return Type::OtherObject(); | |
1247 } | |
1248 | |
1249 | 1244 |
1250 Type* Typer::Visitor::JSLoadPropertyTyper(Type* object, Type* name, Typer* t) { | 1245 Type* Typer::Visitor::JSLoadPropertyTyper(Type* object, Type* name, Typer* t) { |
1251 // TODO(rossberg): Use range types and sized array types to filter undefined. | 1246 // TODO(rossberg): Use range types and sized array types to filter undefined. |
1252 if (object->IsArray() && name->Is(Type::Integral32())) { | 1247 if (object->IsArray() && name->Is(Type::Integral32())) { |
1253 return Type::Union( | 1248 return Type::Union( |
1254 object->AsArray()->Element(), Type::Undefined(), t->zone()); | 1249 object->AsArray()->Element(), Type::Undefined(), t->zone()); |
1255 } | 1250 } |
1256 return Type::Any(); | 1251 return Type::Any(); |
1257 } | 1252 } |
1258 | 1253 |
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2366 } | 2361 } |
2367 if (Type::IsInteger(*value)) { | 2362 if (Type::IsInteger(*value)) { |
2368 return Type::Range(value->Number(), value->Number(), zone()); | 2363 return Type::Range(value->Number(), value->Number(), zone()); |
2369 } | 2364 } |
2370 return Type::Constant(value, zone()); | 2365 return Type::Constant(value, zone()); |
2371 } | 2366 } |
2372 | 2367 |
2373 } // namespace compiler | 2368 } // namespace compiler |
2374 } // namespace internal | 2369 } // namespace internal |
2375 } // namespace v8 | 2370 } // namespace v8 |
OLD | NEW |