summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/types-fuzz.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/types-fuzz.h')
-rw-r--r--deps/v8/test/cctest/types-fuzz.h34
1 files changed, 26 insertions, 8 deletions
diff --git a/deps/v8/test/cctest/types-fuzz.h b/deps/v8/test/cctest/types-fuzz.h
index 4eac64c838..6864cd2df1 100644
--- a/deps/v8/test/cctest/types-fuzz.h
+++ b/deps/v8/test/cctest/types-fuzz.h
@@ -28,6 +28,7 @@
#ifndef V8_TEST_CCTEST_TYPES_H_
#define V8_TEST_CCTEST_TYPES_H_
+#include "src/base/utils/random-number-generator.h"
#include "src/v8.h"
namespace v8 {
@@ -37,14 +38,17 @@ namespace internal {
template<class Type, class TypeHandle, class Region>
class Types {
public:
- Types(Region* region, Isolate* isolate)
- : region_(region), rng_(isolate->random_number_generator()) {
+ Types(Region* region, Isolate* isolate, v8::base::RandomNumberGenerator* rng)
+ : region_(region), rng_(rng) {
#define DECLARE_TYPE(name, value) \
name = Type::name(region); \
types.push_back(name);
PROPER_BITSET_TYPE_LIST(DECLARE_TYPE)
#undef DECLARE_TYPE
+ SignedSmall = Type::SignedSmall(region);
+ UnsignedSmall = Type::UnsignedSmall(region);
+
object_map = isolate->factory()->NewMap(
JS_OBJECT_TYPE, JSObject::kHeaderSize);
array_map = isolate->factory()->NewMap(
@@ -98,8 +102,7 @@ class Types {
if (!IsMinusZero(x)) integers.push_back(isolate->factory()->NewNumber(x));
}
- Integer = Type::Range(isolate->factory()->NewNumber(-V8_INFINITY),
- isolate->factory()->NewNumber(+V8_INFINITY), region);
+ Integer = Type::Range(-V8_INFINITY, +V8_INFINITY, region);
NumberArray = Type::Array(Number, region);
StringArray = Type::Array(String, region);
@@ -131,6 +134,12 @@ class Types {
PROPER_BITSET_TYPE_LIST(DECLARE_TYPE)
#undef DECLARE_TYPE
+#define DECLARE_TYPE(name, value) TypeHandle Mask##name##ForTesting;
+ MASK_BITSET_TYPE_LIST(DECLARE_TYPE)
+#undef DECLARE_TYPE
+ TypeHandle SignedSmall;
+ TypeHandle UnsignedSmall;
+
TypeHandle ObjectClass;
TypeHandle ArrayClass;
TypeHandle NumberClass;
@@ -179,7 +188,7 @@ class Types {
return Type::Constant(value, region_);
}
- TypeHandle Range(Handle<i::Object> min, Handle<i::Object> max) {
+ TypeHandle Range(double min, double max) {
return Type::Range(min, max, region_);
}
@@ -208,10 +217,19 @@ class Types {
TypeHandle Union(TypeHandle t1, TypeHandle t2) {
return Type::Union(t1, t2, region_);
}
+
TypeHandle Intersect(TypeHandle t1, TypeHandle t2) {
return Type::Intersect(t1, t2, region_);
}
+ TypeHandle Representation(TypeHandle t) {
+ return Type::Representation(t, region_);
+ }
+
+ // TypeHandle Semantic(TypeHandle t) { return Intersect(t,
+ // MaskSemanticForTesting); }
+ TypeHandle Semantic(TypeHandle t) { return Type::Semantic(t, region_); }
+
template<class Type2, class TypeHandle2>
TypeHandle Convert(TypeHandle2 t) {
return Type::template Convert<Type2>(t, region_);
@@ -258,9 +276,9 @@ class Types {
case 3: { // range
int i = rng_->NextInt(static_cast<int>(integers.size()));
int j = rng_->NextInt(static_cast<int>(integers.size()));
- i::Handle<i::Object> min = integers[i];
- i::Handle<i::Object> max = integers[j];
- if (min->Number() > max->Number()) std::swap(min, max);
+ double min = integers[i]->Number();
+ double max = integers[j]->Number();
+ if (min > max) std::swap(min, max);
return Type::Range(min, max, region_);
}
case 4: { // context