Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 10971cfb7c53c8695f620f49129373c1f489e882..e10caf72aed6d1f975256dbb675a3edc10e40772 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -9647,114 +9647,6 @@ int SharedFunctionInfo::CalculateInObjectProperties() { |
} |
-bool SharedFunctionInfo::CanGenerateInlineConstructor(Object* prototype) { |
- // Check the basic conditions for generating inline constructor code. |
- if (!FLAG_inline_new |
- || !has_only_simple_this_property_assignments() |
- || is_generator() |
- || this_property_assignments_count() == 0) { |
- return false; |
- } |
- |
- Isolate* isolate = GetIsolate(); |
- Heap* heap = isolate->heap(); |
- |
- // Traverse the proposed prototype chain looking for properties of the |
- // same names as are set by the inline constructor. |
- for (Object* obj = prototype; |
- obj != heap->null_value(); |
- obj = obj->GetPrototype(isolate)) { |
- JSReceiver* receiver = JSReceiver::cast(obj); |
- for (int i = 0; i < this_property_assignments_count(); i++) { |
- LookupResult result(heap->isolate()); |
- String* name = GetThisPropertyAssignmentName(i); |
- receiver->LocalLookup(name, &result); |
- if (result.IsFound()) { |
- switch (result.type()) { |
- case NORMAL: |
- case FIELD: |
- case CONSTANT_FUNCTION: |
- break; |
- case INTERCEPTOR: |
- case CALLBACKS: |
- case HANDLER: |
- return false; |
- case TRANSITION: |
- case NONEXISTENT: |
- UNREACHABLE(); |
- break; |
- } |
- } |
- } |
- } |
- |
- return true; |
-} |
- |
- |
-void SharedFunctionInfo::ForbidInlineConstructor() { |
- set_compiler_hints(BooleanBit::set(compiler_hints(), |
- kHasOnlySimpleThisPropertyAssignments, |
- false)); |
-} |
- |
- |
-void SharedFunctionInfo::SetThisPropertyAssignmentsInfo( |
- bool only_simple_this_property_assignments, |
- FixedArray* assignments) { |
- set_compiler_hints(BooleanBit::set(compiler_hints(), |
- kHasOnlySimpleThisPropertyAssignments, |
- only_simple_this_property_assignments)); |
- set_this_property_assignments(assignments); |
- set_this_property_assignments_count(assignments->length() / 3); |
-} |
- |
- |
-void SharedFunctionInfo::ClearThisPropertyAssignmentsInfo() { |
- Heap* heap = GetHeap(); |
- set_compiler_hints(BooleanBit::set(compiler_hints(), |
- kHasOnlySimpleThisPropertyAssignments, |
- false)); |
- set_this_property_assignments(heap->undefined_value()); |
- set_this_property_assignments_count(0); |
-} |
- |
- |
-String* SharedFunctionInfo::GetThisPropertyAssignmentName(int index) { |
- Object* obj = this_property_assignments(); |
- ASSERT(obj->IsFixedArray()); |
- ASSERT(index < this_property_assignments_count()); |
- obj = FixedArray::cast(obj)->get(index * 3); |
- ASSERT(obj->IsString()); |
- return String::cast(obj); |
-} |
- |
- |
-bool SharedFunctionInfo::IsThisPropertyAssignmentArgument(int index) { |
- Object* obj = this_property_assignments(); |
- ASSERT(obj->IsFixedArray()); |
- ASSERT(index < this_property_assignments_count()); |
- obj = FixedArray::cast(obj)->get(index * 3 + 1); |
- return Smi::cast(obj)->value() != -1; |
-} |
- |
- |
-int SharedFunctionInfo::GetThisPropertyAssignmentArgument(int index) { |
- ASSERT(IsThisPropertyAssignmentArgument(index)); |
- Object* obj = |
- FixedArray::cast(this_property_assignments())->get(index * 3 + 1); |
- return Smi::cast(obj)->value(); |
-} |
- |
- |
-Object* SharedFunctionInfo::GetThisPropertyAssignmentConstant(int index) { |
- ASSERT(!IsThisPropertyAssignmentArgument(index)); |
- Object* obj = |
- FixedArray::cast(this_property_assignments())->get(index * 3 + 2); |
- return obj; |
-} |
- |
- |
// Support function for printing the source code to a StringStream |
// without any allocation in the heap. |
void SharedFunctionInfo::SourceCodePrint(StringStream* accumulator, |