OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 | 52 |
53 object_map = isolate->factory()->NewMap( | 53 object_map = isolate->factory()->NewMap( |
54 JS_OBJECT_TYPE, JSObject::kHeaderSize); | 54 JS_OBJECT_TYPE, JSObject::kHeaderSize); |
55 | 55 |
56 smi = handle(Smi::FromInt(666), isolate); | 56 smi = handle(Smi::FromInt(666), isolate); |
57 signed32 = isolate->factory()->NewHeapNumber(0x40000000); | 57 signed32 = isolate->factory()->NewHeapNumber(0x40000000); |
58 object1 = isolate->factory()->NewJSObjectFromMap(object_map); | 58 object1 = isolate->factory()->NewJSObjectFromMap(object_map); |
59 object2 = isolate->factory()->NewJSObjectFromMap(object_map); | 59 object2 = isolate->factory()->NewJSObjectFromMap(object_map); |
60 array = isolate->factory()->NewJSArray(20); | 60 array = isolate->factory()->NewJSArray(20); |
61 uninitialized = isolate->factory()->uninitialized_value(); | 61 uninitialized = isolate->factory()->uninitialized_value(); |
62 SmiConstant = Type::Constant(smi, zone); | 62 SmiConstant = Type::NewConstant(smi, zone); |
63 Signed32Constant = Type::Constant(signed32, zone); | 63 Signed32Constant = Type::NewConstant(signed32, zone); |
64 | 64 |
65 ObjectConstant1 = Type::Constant(object1, zone); | 65 ObjectConstant1 = Type::Constant(object1, zone); |
66 ObjectConstant2 = Type::Constant(object2, zone); | 66 ObjectConstant2 = Type::Constant(object2, zone); |
67 ArrayConstant = Type::Constant(array, zone); | 67 ArrayConstant = Type::Constant(array, zone); |
68 UninitializedConstant = Type::Constant(uninitialized, zone); | 68 UninitializedConstant = Type::Constant(uninitialized, zone); |
69 | 69 |
70 values.push_back(smi); | 70 values.push_back(smi); |
71 values.push_back(signed32); | 71 values.push_back(signed32); |
72 values.push_back(object1); | 72 values.push_back(object1); |
73 values.push_back(object2); | 73 values.push_back(object2); |
74 values.push_back(array); | 74 values.push_back(array); |
75 values.push_back(uninitialized); | 75 values.push_back(uninitialized); |
76 for (ValueVector::iterator it = values.begin(); it != values.end(); ++it) { | 76 for (ValueVector::iterator it = values.begin(); it != values.end(); ++it) { |
77 types.push_back(Type::Constant(*it, zone)); | 77 types.push_back(Type::NewConstant(*it, zone)); |
78 } | 78 } |
79 | 79 |
80 integers.push_back(isolate->factory()->NewNumber(-V8_INFINITY)); | 80 integers.push_back(isolate->factory()->NewNumber(-V8_INFINITY)); |
81 integers.push_back(isolate->factory()->NewNumber(+V8_INFINITY)); | 81 integers.push_back(isolate->factory()->NewNumber(+V8_INFINITY)); |
82 integers.push_back(isolate->factory()->NewNumber(-rng_->NextInt(10))); | 82 integers.push_back(isolate->factory()->NewNumber(-rng_->NextInt(10))); |
83 integers.push_back(isolate->factory()->NewNumber(+rng_->NextInt(10))); | 83 integers.push_back(isolate->factory()->NewNumber(+rng_->NextInt(10))); |
84 for (int i = 0; i < 10; ++i) { | 84 for (int i = 0; i < 10; ++i) { |
85 double x = rng_->NextInt(); | 85 double x = rng_->NextInt(); |
86 integers.push_back(isolate->factory()->NewNumber(x)); | 86 integers.push_back(isolate->factory()->NewNumber(x)); |
87 x *= rng_->NextInt(); | 87 x *= rng_->NextInt(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 122 |
123 typedef std::vector<Type*> TypeVector; | 123 typedef std::vector<Type*> TypeVector; |
124 typedef std::vector<Handle<i::Object> > ValueVector; | 124 typedef std::vector<Handle<i::Object> > ValueVector; |
125 | 125 |
126 TypeVector types; | 126 TypeVector types; |
127 ValueVector values; | 127 ValueVector values; |
128 ValueVector integers; // "Integer" values used for range limits. | 128 ValueVector integers; // "Integer" values used for range limits. |
129 | 129 |
130 Type* Of(Handle<i::Object> value) { return Type::Of(value, zone_); } | 130 Type* Of(Handle<i::Object> value) { return Type::Of(value, zone_); } |
131 | 131 |
| 132 Type* NewConstant(Handle<i::Object> value) { |
| 133 return Type::NewConstant(value, zone_); |
| 134 } |
| 135 |
132 Type* Constant(Handle<i::Object> value) { | 136 Type* Constant(Handle<i::Object> value) { |
133 return Type::Constant(value, zone_); | 137 return Type::Constant(value, zone_); |
134 } | 138 } |
135 | 139 |
136 Type* Range(double min, double max) { return Type::Range(min, max, zone_); } | 140 Type* Range(double min, double max) { return Type::Range(min, max, zone_); } |
137 | 141 |
138 Type* Union(Type* t1, Type* t2) { return Type::Union(t1, t2, zone_); } | 142 Type* Union(Type* t1, Type* t2) { return Type::Union(t1, t2, zone_); } |
139 | 143 |
140 Type* Intersect(Type* t1, Type* t2) { return Type::Intersect(t1, t2, zone_); } | 144 Type* Intersect(Type* t1, Type* t2) { return Type::Intersect(t1, t2, zone_); } |
141 | 145 |
(...skipping 21 matching lines...) Expand all Loading... |
163 continue; \ | 167 continue; \ |
164 } \ | 168 } \ |
165 } | 169 } |
166 PROPER_BITSET_TYPE_LIST(PICK_BITSET_TYPE) | 170 PROPER_BITSET_TYPE_LIST(PICK_BITSET_TYPE) |
167 #undef PICK_BITSET_TYPE | 171 #undef PICK_BITSET_TYPE |
168 } | 172 } |
169 return result; | 173 return result; |
170 } | 174 } |
171 case 1: { // constant | 175 case 1: { // constant |
172 int i = rng_->NextInt(static_cast<int>(values.size())); | 176 int i = rng_->NextInt(static_cast<int>(values.size())); |
173 return Type::Constant(values[i], zone_); | 177 return Type::NewConstant(values[i], zone_); |
174 } | 178 } |
175 case 2: { // range | 179 case 2: { // range |
176 int i = rng_->NextInt(static_cast<int>(integers.size())); | 180 int i = rng_->NextInt(static_cast<int>(integers.size())); |
177 int j = rng_->NextInt(static_cast<int>(integers.size())); | 181 int j = rng_->NextInt(static_cast<int>(integers.size())); |
178 double min = integers[i]->Number(); | 182 double min = integers[i]->Number(); |
179 double max = integers[j]->Number(); | 183 double max = integers[j]->Number(); |
180 if (min > max) std::swap(min, max); | 184 if (min > max) std::swap(min, max); |
181 return Type::Range(min, max, zone_); | 185 return Type::Range(min, max, zone_); |
182 } | 186 } |
183 default: { // union | 187 default: { // union |
(...skipping 14 matching lines...) Expand all Loading... |
198 private: | 202 private: |
199 Zone* zone_; | 203 Zone* zone_; |
200 v8::base::RandomNumberGenerator* rng_; | 204 v8::base::RandomNumberGenerator* rng_; |
201 }; | 205 }; |
202 | 206 |
203 } // namespace compiler | 207 } // namespace compiler |
204 } // namespace internal | 208 } // namespace internal |
205 } // namespace v8 | 209 } // namespace v8 |
206 | 210 |
207 #endif | 211 #endif |
OLD | NEW |