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/bootstrapper.h" | 5 #include "src/bootstrapper.h" |
6 #include "src/compiler/graph-inl.h" | 6 #include "src/compiler/graph-inl.h" |
7 #include "src/compiler/js-operator.h" | 7 #include "src/compiler/js-operator.h" |
8 #include "src/compiler/node.h" | 8 #include "src/compiler/node.h" |
9 #include "src/compiler/node-properties-inl.h" | 9 #include "src/compiler/node-properties-inl.h" |
10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
(...skipping 1015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1026 | 1026 |
1027 if (lhs->Maybe(Type::NaN()) || rhs->Maybe(t->zeroish) || | 1027 if (lhs->Maybe(Type::NaN()) || rhs->Maybe(t->zeroish) || |
1028 lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) { | 1028 lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) { |
1029 // Result maybe NaN. | 1029 // Result maybe NaN. |
1030 return Type::Number(); | 1030 return Type::Number(); |
1031 } | 1031 } |
1032 | 1032 |
1033 lhs = Rangify(lhs, t); | 1033 lhs = Rangify(lhs, t); |
1034 rhs = Rangify(rhs, t); | 1034 rhs = Rangify(rhs, t); |
1035 if (lhs->IsRange() && rhs->IsRange()) { | 1035 if (lhs->IsRange() && rhs->IsRange()) { |
1036 // TODO(titzer): fix me. | 1036 return JSModulusRanger(lhs->AsRange(), rhs->AsRange(), t); |
1037 // return JSModulusRanger(lhs->AsRange(), rhs->AsRange(), t); | |
1038 } | 1037 } |
1039 return Type::OrderedNumber(); | 1038 return Type::OrderedNumber(); |
1040 } | 1039 } |
1041 | 1040 |
1042 | 1041 |
1043 // JS unary operators. | 1042 // JS unary operators. |
1044 | 1043 |
1045 | 1044 |
1046 Type* Typer::Visitor::JSUnaryNotTyper(Type* type, Typer* t) { | 1045 Type* Typer::Visitor::JSUnaryNotTyper(Type* type, Typer* t) { |
1047 return Invert(ToBoolean(type, t), t); | 1046 return Invert(ToBoolean(type, t), t); |
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1933 return typer_->float64_array_fun_; | 1932 return typer_->float64_array_fun_; |
1934 } | 1933 } |
1935 } | 1934 } |
1936 } | 1935 } |
1937 return Type::Constant(value, zone()); | 1936 return Type::Constant(value, zone()); |
1938 } | 1937 } |
1939 | 1938 |
1940 } | 1939 } |
1941 } | 1940 } |
1942 } // namespace v8::internal::compiler | 1941 } // namespace v8::internal::compiler |
OLD | NEW |