From 6d475fb3508c7b71499e54a9255f9d0269f22283 Mon Sep 17 00:00:00 2001 From: "rossberg@chromium.org" Date: Thu, 17 Apr 2014 09:30:41 +0000 Subject: [PATCH] Fix handlification bug in test R=bmeurer@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/240603004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- test/cctest/test-types.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/test/cctest/test-types.cc b/test/cctest/test-types.cc index 59a8f08..47868f6 100644 --- a/test/cctest/test-types.cc +++ b/test/cctest/test-types.cc @@ -272,22 +272,28 @@ class Types { int i = rng_.NextInt(static_cast(values.size())); return Type::Constant(values[i], region_); } - case 3: // array - return Type::Array(Fuzz(depth / 2), region_); + case 3: { // array + TypeHandle element = Fuzz(depth / 2); + return Type::Array(element, region_); + } case 4: case 5: case 6: { // function - TypeHandle type = Type::Function( - Fuzz(depth / 2), Fuzz(depth / 2), rand() % 3, region_); + TypeHandle result = Fuzz(depth / 2); + TypeHandle receiver = Fuzz(depth / 2); + int arity = rng_.NextInt(3); + TypeHandle type = Type::Function(result, receiver, arity, region_); for (int i = 0; i < type->AsFunction()->Arity(); ++i) { - type->AsFunction()->InitParameter(i, Fuzz(depth - 1)); + TypeHandle parameter = Fuzz(depth - 1); + type->AsFunction()->InitParameter(i, parameter); } } default: { // union int n = rng_.NextInt(10); TypeHandle type = None; for (int i = 0; i < n; ++i) { - type = Type::Union(type, Fuzz(depth - 1), region_); + TypeHandle operand = Fuzz(depth - 1); + type = Type::Union(type, operand, region_); } return type; } -- 2.7.4