| Index: test/cctest/test-code-stub-assembler.cc
|
| diff --git a/test/cctest/test-code-stub-assembler.cc b/test/cctest/test-code-stub-assembler.cc
|
| index d55c82e8eac28bcdb761c714f59db24f9823b5d1..4af399e4f6dc43dc929e38c3bfe97789233315f7 100644
|
| --- a/test/cctest/test-code-stub-assembler.cc
|
| +++ b/test/cctest/test-code-stub-assembler.cc
|
| @@ -1626,7 +1626,7 @@ TEST(AllocateJSObjectFromMap) {
|
| FunctionTester ft(code, kNumParams);
|
|
|
| Handle<Map> maps[] = {
|
| - isolate->object_with_null_prototype_map(),
|
| + isolate->slow_object_with_null_prototype_map(),
|
| handle(isolate->object_function()->initial_map(), isolate),
|
| handle(isolate->array_function()->initial_map(), isolate),
|
| };
|
| @@ -1661,11 +1661,42 @@ TEST(AllocateJSObjectFromMap) {
|
| handle(object->elements()))
|
| .ToHandleChecked());
|
| VERIFY(result, object->map(), object->properties(), object->elements());
|
| + CHECK(!result->HasFastProperties());
|
| #ifdef VERIFY_HEAP
|
| isolate->heap()->Verify();
|
| #endif
|
| }
|
| }
|
| +TEST(AllocateNameDictionary) {
|
| + Isolate* isolate(CcTest::InitIsolateOnce());
|
| + Factory* factory = isolate->factory();
|
| +
|
| + const int kNumParams = 1;
|
| + CodeStubAssemblerTester m(isolate, kNumParams);
|
| +
|
| + {
|
| + Node* capacity = m.Parameter(0);
|
| + Node* result = m.AllocateNameDictionary(m.SmiUntag(capacity));
|
| + m.Return(result);
|
| + }
|
| +
|
| + Handle<Code> code = m.GenerateCode();
|
| + FunctionTester ft(code, kNumParams);
|
| +
|
| + {
|
| + Handle<Object> empty_fixed_array = factory->empty_fixed_array();
|
| + for (int i = 2; i < 100; i *= 2) {
|
| + Handle<JSObject> result = Handle<JSObject>::cast(
|
| + ft.Call(handle(Smi::FromInt(i), isolate)).ToHandleChecked());
|
| + Handle<NameDictionary> dict = NameDictionary::New(
|
| + isolate, i, NOT_TENURED, USE_CUSTOM_MINIMUM_CAPACITY);
|
| + // Both dictionaries should be memory equal.
|
| + int size =
|
| + FixedArrayBase::kHeaderSize + (dict->length() - 1) * kPointerSize;
|
| + CHECK_EQ(0, memcmp(*dict, *result, size));
|
| + }
|
| + }
|
| +}
|
|
|
| } // namespace internal
|
| } // namespace v8
|
|
|