OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 // a function (without new). | 1195 // a function (without new). |
1196 MUST_USE_RESULT static MaybeObject* HandleApiCallAsFunctionOrConstructor( | 1196 MUST_USE_RESULT static MaybeObject* HandleApiCallAsFunctionOrConstructor( |
1197 Isolate* isolate, | 1197 Isolate* isolate, |
1198 bool is_construct_call, | 1198 bool is_construct_call, |
1199 BuiltinArguments<NO_EXTRA_ARGUMENTS> args) { | 1199 BuiltinArguments<NO_EXTRA_ARGUMENTS> args) { |
1200 // Non-functions are never called as constructors. Even if this is an object | 1200 // Non-functions are never called as constructors. Even if this is an object |
1201 // called as a constructor the delegate call is not a construct call. | 1201 // called as a constructor the delegate call is not a construct call. |
1202 ASSERT(!CalledAsConstructor(isolate)); | 1202 ASSERT(!CalledAsConstructor(isolate)); |
1203 Heap* heap = isolate->heap(); | 1203 Heap* heap = isolate->heap(); |
1204 | 1204 |
1205 Handle<Object> receiver = args.at<Object>(0); | 1205 Handle<Object> receiver = args.receiver(); |
1206 | 1206 |
1207 // Get the object called. | 1207 // Get the object called. |
1208 JSObject* obj = JSObject::cast(*args.receiver()); | 1208 JSObject* obj = JSObject::cast(*receiver); |
1209 | 1209 |
1210 // Get the invocation callback from the function descriptor that was | 1210 // Get the invocation callback from the function descriptor that was |
1211 // used to create the called object. | 1211 // used to create the called object. |
1212 ASSERT(obj->map()->has_instance_call_handler()); | 1212 ASSERT(obj->map()->has_instance_call_handler()); |
1213 JSFunction* constructor = JSFunction::cast(obj->map()->constructor()); | 1213 JSFunction* constructor = JSFunction::cast(obj->map()->constructor()); |
1214 ASSERT(constructor->shared()->IsApiFunction()); | 1214 ASSERT(constructor->shared()->IsApiFunction()); |
1215 Object* handler = | 1215 Object* handler = |
1216 constructor->shared()->get_api_func_data()->instance_call_handler(); | 1216 constructor->shared()->get_api_func_data()->instance_call_handler(); |
1217 ASSERT(!handler->IsUndefined()); | 1217 ASSERT(!handler->IsUndefined()); |
1218 CallHandlerInfo* call_data = CallHandlerInfo::cast(handler); | 1218 CallHandlerInfo* call_data = CallHandlerInfo::cast(handler); |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1704 return Handle<Code>(code_address); \ | 1704 return Handle<Code>(code_address); \ |
1705 } | 1705 } |
1706 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) | 1706 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) |
1707 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) | 1707 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) |
1708 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) | 1708 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) |
1709 #undef DEFINE_BUILTIN_ACCESSOR_C | 1709 #undef DEFINE_BUILTIN_ACCESSOR_C |
1710 #undef DEFINE_BUILTIN_ACCESSOR_A | 1710 #undef DEFINE_BUILTIN_ACCESSOR_A |
1711 | 1711 |
1712 | 1712 |
1713 } } // namespace v8::internal | 1713 } } // namespace v8::internal |
OLD | NEW |