| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/api-natives.h" | 5 #include "src/api-natives.h" |
| 6 | 6 |
| 7 #include "src/api.h" | 7 #include "src/api.h" |
| 8 #include "src/isolate-inl.h" | 8 #include "src/isolate-inl.h" |
| 9 #include "src/lookup.h" | 9 #include "src/lookup.h" |
| 10 #include "src/messages.h" | 10 #include "src/messages.h" |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 if (!obj->named_property_handler()->IsUndefined()) { | 487 if (!obj->named_property_handler()->IsUndefined()) { |
| 488 map->set_has_named_interceptor(); | 488 map->set_has_named_interceptor(); |
| 489 } | 489 } |
| 490 if (!obj->indexed_property_handler()->IsUndefined()) { | 490 if (!obj->indexed_property_handler()->IsUndefined()) { |
| 491 map->set_has_indexed_interceptor(); | 491 map->set_has_indexed_interceptor(); |
| 492 } | 492 } |
| 493 | 493 |
| 494 // Mark instance as callable in the map. | 494 // Mark instance as callable in the map. |
| 495 if (!obj->instance_call_handler()->IsUndefined()) { | 495 if (!obj->instance_call_handler()->IsUndefined()) { |
| 496 map->set_is_callable(); | 496 map->set_is_callable(); |
| 497 map->set_is_constructor(true); | |
| 498 } | 497 } |
| 499 | 498 |
| 500 // Recursively copy parent instance templates' accessors, | 499 // Recursively copy parent instance templates' accessors, |
| 501 // 'data' may be modified. | 500 // 'data' may be modified. |
| 502 int max_number_of_additional_properties = 0; | 501 int max_number_of_additional_properties = 0; |
| 503 int max_number_of_static_properties = 0; | 502 int max_number_of_static_properties = 0; |
| 504 FunctionTemplateInfo* info = *obj; | 503 FunctionTemplateInfo* info = *obj; |
| 505 while (true) { | 504 while (true) { |
| 506 if (!info->instance_template()->IsUndefined()) { | 505 if (!info->instance_template()->IsUndefined()) { |
| 507 Object* props = ObjectTemplateInfo::cast(info->instance_template()) | 506 Object* props = ObjectTemplateInfo::cast(info->instance_template()) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 Handle<AccessorInfo> accessor(AccessorInfo::cast(array->get(i))); | 561 Handle<AccessorInfo> accessor(AccessorInfo::cast(array->get(i))); |
| 563 JSObject::SetAccessor(result, accessor).Assert(); | 562 JSObject::SetAccessor(result, accessor).Assert(); |
| 564 } | 563 } |
| 565 | 564 |
| 566 DCHECK(result->shared()->IsApiFunction()); | 565 DCHECK(result->shared()->IsApiFunction()); |
| 567 return result; | 566 return result; |
| 568 } | 567 } |
| 569 | 568 |
| 570 } // namespace internal | 569 } // namespace internal |
| 571 } // namespace v8 | 570 } // namespace v8 |
| OLD | NEW |