Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: src/objects.cc

Issue 14139033: Clean up VMState a little bit. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: fixed mistake Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/log-utils.cc ('k') | src/profile-generator-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 if (call_fun == NULL) return isolate->heap()->undefined_value(); 337 if (call_fun == NULL) return isolate->heap()->undefined_value();
338 HandleScope scope(isolate); 338 HandleScope scope(isolate);
339 JSObject* self = JSObject::cast(receiver); 339 JSObject* self = JSObject::cast(receiver);
340 Handle<String> key(String::cast(name)); 340 Handle<String> key(String::cast(name));
341 LOG(isolate, ApiNamedPropertyAccess("load", self, name)); 341 LOG(isolate, ApiNamedPropertyAccess("load", self, name));
342 CustomArguments args(isolate, data->data(), self, this); 342 CustomArguments args(isolate, data->data(), self, this);
343 v8::AccessorInfo info(args.end()); 343 v8::AccessorInfo info(args.end());
344 v8::Handle<v8::Value> result; 344 v8::Handle<v8::Value> result;
345 { 345 {
346 // Leaving JavaScript. 346 // Leaving JavaScript.
347 VMState state(isolate, EXTERNAL); 347 VMState<EXTERNAL> state(isolate);
348 result = call_fun(v8::Utils::ToLocal(key), info); 348 result = call_fun(v8::Utils::ToLocal(key), info);
349 } 349 }
350 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 350 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
351 if (result.IsEmpty()) { 351 if (result.IsEmpty()) {
352 return isolate->heap()->undefined_value(); 352 return isolate->heap()->undefined_value();
353 } 353 }
354 Object* return_value = *v8::Utils::OpenHandle(*result); 354 Object* return_value = *v8::Utils::OpenHandle(*result);
355 return_value->VerifyApiCallResultType(); 355 return_value->VerifyApiCallResultType();
356 return return_value; 356 return return_value;
357 } 357 }
(...skipping 1754 matching lines...) Expand 10 before | Expand all | Expand 10 after
2112 Handle<InterceptorInfo> interceptor(GetNamedInterceptor()); 2112 Handle<InterceptorInfo> interceptor(GetNamedInterceptor());
2113 if (!interceptor->setter()->IsUndefined()) { 2113 if (!interceptor->setter()->IsUndefined()) {
2114 LOG(isolate, ApiNamedPropertyAccess("interceptor-named-set", this, name)); 2114 LOG(isolate, ApiNamedPropertyAccess("interceptor-named-set", this, name));
2115 CustomArguments args(isolate, interceptor->data(), this, this); 2115 CustomArguments args(isolate, interceptor->data(), this, this);
2116 v8::AccessorInfo info(args.end()); 2116 v8::AccessorInfo info(args.end());
2117 v8::NamedPropertySetter setter = 2117 v8::NamedPropertySetter setter =
2118 v8::ToCData<v8::NamedPropertySetter>(interceptor->setter()); 2118 v8::ToCData<v8::NamedPropertySetter>(interceptor->setter());
2119 v8::Handle<v8::Value> result; 2119 v8::Handle<v8::Value> result;
2120 { 2120 {
2121 // Leaving JavaScript. 2121 // Leaving JavaScript.
2122 VMState state(isolate, EXTERNAL); 2122 VMState<EXTERNAL> state(isolate);
2123 Handle<Object> value_unhole(value->IsTheHole() ? 2123 Handle<Object> value_unhole(value->IsTheHole() ?
2124 isolate->heap()->undefined_value() : 2124 isolate->heap()->undefined_value() :
2125 value, 2125 value,
2126 isolate); 2126 isolate);
2127 result = setter(v8::Utils::ToLocal(name_handle), 2127 result = setter(v8::Utils::ToLocal(name_handle),
2128 v8::Utils::ToLocal(value_unhole), 2128 v8::Utils::ToLocal(value_unhole),
2129 info); 2129 info);
2130 } 2130 }
2131 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 2131 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
2132 if (!result.IsEmpty()) return *value_handle; 2132 if (!result.IsEmpty()) return *value_handle;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2223 if (name->IsSymbol()) return value; 2223 if (name->IsSymbol()) return value;
2224 Object* call_obj = data->setter(); 2224 Object* call_obj = data->setter();
2225 v8::AccessorSetter call_fun = v8::ToCData<v8::AccessorSetter>(call_obj); 2225 v8::AccessorSetter call_fun = v8::ToCData<v8::AccessorSetter>(call_obj);
2226 if (call_fun == NULL) return value; 2226 if (call_fun == NULL) return value;
2227 Handle<String> key(String::cast(name)); 2227 Handle<String> key(String::cast(name));
2228 LOG(isolate, ApiNamedPropertyAccess("store", this, name)); 2228 LOG(isolate, ApiNamedPropertyAccess("store", this, name));
2229 CustomArguments args(isolate, data->data(), this, JSObject::cast(holder)); 2229 CustomArguments args(isolate, data->data(), this, JSObject::cast(holder));
2230 v8::AccessorInfo info(args.end()); 2230 v8::AccessorInfo info(args.end());
2231 { 2231 {
2232 // Leaving JavaScript. 2232 // Leaving JavaScript.
2233 VMState state(isolate, EXTERNAL); 2233 VMState<EXTERNAL> state(isolate);
2234 call_fun(v8::Utils::ToLocal(key), 2234 call_fun(v8::Utils::ToLocal(key),
2235 v8::Utils::ToLocal(value_handle), 2235 v8::Utils::ToLocal(value_handle),
2236 info); 2236 info);
2237 } 2237 }
2238 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 2238 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
2239 return *value_handle; 2239 return *value_handle;
2240 } 2240 }
2241 2241
2242 if (structure->IsAccessorPair()) { 2242 if (structure->IsAccessorPair()) {
2243 Object* setter = AccessorPair::cast(structure)->setter(); 2243 Object* setter = AccessorPair::cast(structure)->setter();
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after
3487 CustomArguments args(isolate, interceptor->data(), receiver, this); 3487 CustomArguments args(isolate, interceptor->data(), receiver, this);
3488 v8::AccessorInfo info(args.end()); 3488 v8::AccessorInfo info(args.end());
3489 if (!interceptor->query()->IsUndefined()) { 3489 if (!interceptor->query()->IsUndefined()) {
3490 v8::NamedPropertyQuery query = 3490 v8::NamedPropertyQuery query =
3491 v8::ToCData<v8::NamedPropertyQuery>(interceptor->query()); 3491 v8::ToCData<v8::NamedPropertyQuery>(interceptor->query());
3492 LOG(isolate, 3492 LOG(isolate,
3493 ApiNamedPropertyAccess("interceptor-named-has", *holder_handle, name)); 3493 ApiNamedPropertyAccess("interceptor-named-has", *holder_handle, name));
3494 v8::Handle<v8::Integer> result; 3494 v8::Handle<v8::Integer> result;
3495 { 3495 {
3496 // Leaving JavaScript. 3496 // Leaving JavaScript.
3497 VMState state(isolate, EXTERNAL); 3497 VMState<EXTERNAL> state(isolate);
3498 result = query(v8::Utils::ToLocal(name_handle), info); 3498 result = query(v8::Utils::ToLocal(name_handle), info);
3499 } 3499 }
3500 if (!result.IsEmpty()) { 3500 if (!result.IsEmpty()) {
3501 ASSERT(result->IsInt32()); 3501 ASSERT(result->IsInt32());
3502 return static_cast<PropertyAttributes>(result->Int32Value()); 3502 return static_cast<PropertyAttributes>(result->Int32Value());
3503 } 3503 }
3504 } else if (!interceptor->getter()->IsUndefined()) { 3504 } else if (!interceptor->getter()->IsUndefined()) {
3505 v8::NamedPropertyGetter getter = 3505 v8::NamedPropertyGetter getter =
3506 v8::ToCData<v8::NamedPropertyGetter>(interceptor->getter()); 3506 v8::ToCData<v8::NamedPropertyGetter>(interceptor->getter());
3507 LOG(isolate, 3507 LOG(isolate,
3508 ApiNamedPropertyAccess("interceptor-named-get-has", this, name)); 3508 ApiNamedPropertyAccess("interceptor-named-get-has", this, name));
3509 v8::Handle<v8::Value> result; 3509 v8::Handle<v8::Value> result;
3510 { 3510 {
3511 // Leaving JavaScript. 3511 // Leaving JavaScript.
3512 VMState state(isolate, EXTERNAL); 3512 VMState<EXTERNAL> state(isolate);
3513 result = getter(v8::Utils::ToLocal(name_handle), info); 3513 result = getter(v8::Utils::ToLocal(name_handle), info);
3514 } 3514 }
3515 if (!result.IsEmpty()) return DONT_ENUM; 3515 if (!result.IsEmpty()) return DONT_ENUM;
3516 } 3516 }
3517 return holder_handle->GetPropertyAttributePostInterceptor(*receiver_handle, 3517 return holder_handle->GetPropertyAttributePostInterceptor(*receiver_handle,
3518 *name_handle, 3518 *name_handle,
3519 continue_search); 3519 continue_search);
3520 } 3520 }
3521 3521
3522 3522
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
3628 CustomArguments args(isolate, interceptor->data(), receiver, this); 3628 CustomArguments args(isolate, interceptor->data(), receiver, this);
3629 v8::AccessorInfo info(args.end()); 3629 v8::AccessorInfo info(args.end());
3630 if (!interceptor->query()->IsUndefined()) { 3630 if (!interceptor->query()->IsUndefined()) {
3631 v8::IndexedPropertyQuery query = 3631 v8::IndexedPropertyQuery query =
3632 v8::ToCData<v8::IndexedPropertyQuery>(interceptor->query()); 3632 v8::ToCData<v8::IndexedPropertyQuery>(interceptor->query());
3633 LOG(isolate, 3633 LOG(isolate,
3634 ApiIndexedPropertyAccess("interceptor-indexed-has", this, index)); 3634 ApiIndexedPropertyAccess("interceptor-indexed-has", this, index));
3635 v8::Handle<v8::Integer> result; 3635 v8::Handle<v8::Integer> result;
3636 { 3636 {
3637 // Leaving JavaScript. 3637 // Leaving JavaScript.
3638 VMState state(isolate, EXTERNAL); 3638 VMState<EXTERNAL> state(isolate);
3639 result = query(index, info); 3639 result = query(index, info);
3640 } 3640 }
3641 if (!result.IsEmpty()) 3641 if (!result.IsEmpty())
3642 return static_cast<PropertyAttributes>(result->Int32Value()); 3642 return static_cast<PropertyAttributes>(result->Int32Value());
3643 } else if (!interceptor->getter()->IsUndefined()) { 3643 } else if (!interceptor->getter()->IsUndefined()) {
3644 v8::IndexedPropertyGetter getter = 3644 v8::IndexedPropertyGetter getter =
3645 v8::ToCData<v8::IndexedPropertyGetter>(interceptor->getter()); 3645 v8::ToCData<v8::IndexedPropertyGetter>(interceptor->getter());
3646 LOG(isolate, 3646 LOG(isolate,
3647 ApiIndexedPropertyAccess("interceptor-indexed-get-has", this, index)); 3647 ApiIndexedPropertyAccess("interceptor-indexed-get-has", this, index));
3648 v8::Handle<v8::Value> result; 3648 v8::Handle<v8::Value> result;
3649 { 3649 {
3650 // Leaving JavaScript. 3650 // Leaving JavaScript.
3651 VMState state(isolate, EXTERNAL); 3651 VMState<EXTERNAL> state(isolate);
3652 result = getter(index, info); 3652 result = getter(index, info);
3653 } 3653 }
3654 if (!result.IsEmpty()) return NONE; 3654 if (!result.IsEmpty()) return NONE;
3655 } 3655 }
3656 3656
3657 return holder->GetElementAttributeWithoutInterceptor( 3657 return holder->GetElementAttributeWithoutInterceptor(
3658 *hreceiver, index, continue_search); 3658 *hreceiver, index, continue_search);
3659 } 3659 }
3660 3660
3661 3661
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
4311 if (!interceptor->deleter()->IsUndefined()) { 4311 if (!interceptor->deleter()->IsUndefined()) {
4312 v8::NamedPropertyDeleter deleter = 4312 v8::NamedPropertyDeleter deleter =
4313 v8::ToCData<v8::NamedPropertyDeleter>(interceptor->deleter()); 4313 v8::ToCData<v8::NamedPropertyDeleter>(interceptor->deleter());
4314 LOG(isolate, 4314 LOG(isolate,
4315 ApiNamedPropertyAccess("interceptor-named-delete", *this_handle, name)); 4315 ApiNamedPropertyAccess("interceptor-named-delete", *this_handle, name));
4316 CustomArguments args(isolate, interceptor->data(), this, this); 4316 CustomArguments args(isolate, interceptor->data(), this, this);
4317 v8::AccessorInfo info(args.end()); 4317 v8::AccessorInfo info(args.end());
4318 v8::Handle<v8::Boolean> result; 4318 v8::Handle<v8::Boolean> result;
4319 { 4319 {
4320 // Leaving JavaScript. 4320 // Leaving JavaScript.
4321 VMState state(isolate, EXTERNAL); 4321 VMState<EXTERNAL> state(isolate);
4322 result = deleter(v8::Utils::ToLocal(name_handle), info); 4322 result = deleter(v8::Utils::ToLocal(name_handle), info);
4323 } 4323 }
4324 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 4324 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
4325 if (!result.IsEmpty()) { 4325 if (!result.IsEmpty()) {
4326 ASSERT(result->IsBoolean()); 4326 ASSERT(result->IsBoolean());
4327 Handle<Object> result_internal = v8::Utils::OpenHandle(*result); 4327 Handle<Object> result_internal = v8::Utils::OpenHandle(*result);
4328 result_internal->VerifyApiCallResultType(); 4328 result_internal->VerifyApiCallResultType();
4329 return *result_internal; 4329 return *result_internal;
4330 } 4330 }
4331 } 4331 }
(...skipping 16 matching lines...) Expand all
4348 v8::IndexedPropertyDeleter deleter = 4348 v8::IndexedPropertyDeleter deleter =
4349 v8::ToCData<v8::IndexedPropertyDeleter>(interceptor->deleter()); 4349 v8::ToCData<v8::IndexedPropertyDeleter>(interceptor->deleter());
4350 Handle<JSObject> this_handle(this); 4350 Handle<JSObject> this_handle(this);
4351 LOG(isolate, 4351 LOG(isolate,
4352 ApiIndexedPropertyAccess("interceptor-indexed-delete", this, index)); 4352 ApiIndexedPropertyAccess("interceptor-indexed-delete", this, index));
4353 CustomArguments args(isolate, interceptor->data(), this, this); 4353 CustomArguments args(isolate, interceptor->data(), this, this);
4354 v8::AccessorInfo info(args.end()); 4354 v8::AccessorInfo info(args.end());
4355 v8::Handle<v8::Boolean> result; 4355 v8::Handle<v8::Boolean> result;
4356 { 4356 {
4357 // Leaving JavaScript. 4357 // Leaving JavaScript.
4358 VMState state(isolate, EXTERNAL); 4358 VMState<EXTERNAL> state(isolate);
4359 result = deleter(index, info); 4359 result = deleter(index, info);
4360 } 4360 }
4361 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 4361 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
4362 if (!result.IsEmpty()) { 4362 if (!result.IsEmpty()) {
4363 ASSERT(result->IsBoolean()); 4363 ASSERT(result->IsBoolean());
4364 Handle<Object> result_internal = v8::Utils::OpenHandle(*result); 4364 Handle<Object> result_internal = v8::Utils::OpenHandle(*result);
4365 result_internal->VerifyApiCallResultType(); 4365 result_internal->VerifyApiCallResultType();
4366 return *result_internal; 4366 return *result_internal;
4367 } 4367 }
4368 MaybeObject* raw_result = this_handle->GetElementsAccessor()->Delete( 4368 MaybeObject* raw_result = this_handle->GetElementsAccessor()->Delete(
(...skipping 5913 matching lines...) Expand 10 before | Expand all | Expand 10 after
10282 if (!interceptor->setter()->IsUndefined()) { 10282 if (!interceptor->setter()->IsUndefined()) {
10283 v8::IndexedPropertySetter setter = 10283 v8::IndexedPropertySetter setter =
10284 v8::ToCData<v8::IndexedPropertySetter>(interceptor->setter()); 10284 v8::ToCData<v8::IndexedPropertySetter>(interceptor->setter());
10285 LOG(isolate, 10285 LOG(isolate,
10286 ApiIndexedPropertyAccess("interceptor-indexed-set", this, index)); 10286 ApiIndexedPropertyAccess("interceptor-indexed-set", this, index));
10287 CustomArguments args(isolate, interceptor->data(), this, this); 10287 CustomArguments args(isolate, interceptor->data(), this, this);
10288 v8::AccessorInfo info(args.end()); 10288 v8::AccessorInfo info(args.end());
10289 v8::Handle<v8::Value> result; 10289 v8::Handle<v8::Value> result;
10290 { 10290 {
10291 // Leaving JavaScript. 10291 // Leaving JavaScript.
10292 VMState state(isolate, EXTERNAL); 10292 VMState<EXTERNAL> state(isolate);
10293 result = setter(index, v8::Utils::ToLocal(value_handle), info); 10293 result = setter(index, v8::Utils::ToLocal(value_handle), info);
10294 } 10294 }
10295 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 10295 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
10296 if (!result.IsEmpty()) return *value_handle; 10296 if (!result.IsEmpty()) return *value_handle;
10297 } 10297 }
10298 MaybeObject* raw_result = 10298 MaybeObject* raw_result =
10299 this_handle->SetElementWithoutInterceptor(index, 10299 this_handle->SetElementWithoutInterceptor(index,
10300 *value_handle, 10300 *value_handle,
10301 attributes, 10301 attributes,
10302 strict_mode, 10302 strict_mode,
(...skipping 22 matching lines...) Expand all
10325 Handle<JSObject> self(JSObject::cast(receiver)); 10325 Handle<JSObject> self(JSObject::cast(receiver));
10326 Handle<JSObject> holder_handle(JSObject::cast(holder)); 10326 Handle<JSObject> holder_handle(JSObject::cast(holder));
10327 Handle<Object> number = isolate->factory()->NewNumberFromUint(index); 10327 Handle<Object> number = isolate->factory()->NewNumberFromUint(index);
10328 Handle<String> key = isolate->factory()->NumberToString(number); 10328 Handle<String> key = isolate->factory()->NumberToString(number);
10329 LOG(isolate, ApiNamedPropertyAccess("load", *self, *key)); 10329 LOG(isolate, ApiNamedPropertyAccess("load", *self, *key));
10330 CustomArguments args(isolate, data->data(), *self, *holder_handle); 10330 CustomArguments args(isolate, data->data(), *self, *holder_handle);
10331 v8::AccessorInfo info(args.end()); 10331 v8::AccessorInfo info(args.end());
10332 v8::Handle<v8::Value> result; 10332 v8::Handle<v8::Value> result;
10333 { 10333 {
10334 // Leaving JavaScript. 10334 // Leaving JavaScript.
10335 VMState state(isolate, EXTERNAL); 10335 VMState<EXTERNAL> state(isolate);
10336 result = call_fun(v8::Utils::ToLocal(key), info); 10336 result = call_fun(v8::Utils::ToLocal(key), info);
10337 } 10337 }
10338 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 10338 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
10339 if (result.IsEmpty()) return isolate->heap()->undefined_value(); 10339 if (result.IsEmpty()) return isolate->heap()->undefined_value();
10340 Handle<Object> result_internal = v8::Utils::OpenHandle(*result); 10340 Handle<Object> result_internal = v8::Utils::OpenHandle(*result);
10341 result_internal->VerifyApiCallResultType(); 10341 result_internal->VerifyApiCallResultType();
10342 return *result_internal; 10342 return *result_internal;
10343 } 10343 }
10344 10344
10345 // __defineGetter__ callback 10345 // __defineGetter__ callback
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
10391 Object* call_obj = data->setter(); 10391 Object* call_obj = data->setter();
10392 v8::AccessorSetter call_fun = v8::ToCData<v8::AccessorSetter>(call_obj); 10392 v8::AccessorSetter call_fun = v8::ToCData<v8::AccessorSetter>(call_obj);
10393 if (call_fun == NULL) return value; 10393 if (call_fun == NULL) return value;
10394 Handle<Object> number = isolate->factory()->NewNumberFromUint(index); 10394 Handle<Object> number = isolate->factory()->NewNumberFromUint(index);
10395 Handle<String> key(isolate->factory()->NumberToString(number)); 10395 Handle<String> key(isolate->factory()->NumberToString(number));
10396 LOG(isolate, ApiNamedPropertyAccess("store", *self, *key)); 10396 LOG(isolate, ApiNamedPropertyAccess("store", *self, *key));
10397 CustomArguments args(isolate, data->data(), *self, *holder_handle); 10397 CustomArguments args(isolate, data->data(), *self, *holder_handle);
10398 v8::AccessorInfo info(args.end()); 10398 v8::AccessorInfo info(args.end());
10399 { 10399 {
10400 // Leaving JavaScript. 10400 // Leaving JavaScript.
10401 VMState state(isolate, EXTERNAL); 10401 VMState<EXTERNAL> state(isolate);
10402 call_fun(v8::Utils::ToLocal(key), 10402 call_fun(v8::Utils::ToLocal(key),
10403 v8::Utils::ToLocal(value_handle), 10403 v8::Utils::ToLocal(value_handle),
10404 info); 10404 info);
10405 } 10405 }
10406 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 10406 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
10407 return *value_handle; 10407 return *value_handle;
10408 } 10408 }
10409 10409
10410 if (structure->IsAccessorPair()) { 10410 if (structure->IsAccessorPair()) {
10411 Handle<Object> setter(AccessorPair::cast(structure)->setter(), isolate); 10411 Handle<Object> setter(AccessorPair::cast(structure)->setter(), isolate);
(...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after
11271 if (!interceptor->getter()->IsUndefined()) { 11271 if (!interceptor->getter()->IsUndefined()) {
11272 v8::IndexedPropertyGetter getter = 11272 v8::IndexedPropertyGetter getter =
11273 v8::ToCData<v8::IndexedPropertyGetter>(interceptor->getter()); 11273 v8::ToCData<v8::IndexedPropertyGetter>(interceptor->getter());
11274 LOG(isolate, 11274 LOG(isolate,
11275 ApiIndexedPropertyAccess("interceptor-indexed-get", this, index)); 11275 ApiIndexedPropertyAccess("interceptor-indexed-get", this, index));
11276 CustomArguments args(isolate, interceptor->data(), receiver, this); 11276 CustomArguments args(isolate, interceptor->data(), receiver, this);
11277 v8::AccessorInfo info(args.end()); 11277 v8::AccessorInfo info(args.end());
11278 v8::Handle<v8::Value> result; 11278 v8::Handle<v8::Value> result;
11279 { 11279 {
11280 // Leaving JavaScript. 11280 // Leaving JavaScript.
11281 VMState state(isolate, EXTERNAL); 11281 VMState<EXTERNAL> state(isolate);
11282 result = getter(index, info); 11282 result = getter(index, info);
11283 } 11283 }
11284 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 11284 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
11285 if (!result.IsEmpty()) { 11285 if (!result.IsEmpty()) {
11286 Handle<Object> result_internal = v8::Utils::OpenHandle(*result); 11286 Handle<Object> result_internal = v8::Utils::OpenHandle(*result);
11287 result_internal->VerifyApiCallResultType(); 11287 result_internal->VerifyApiCallResultType();
11288 return *result_internal; 11288 return *result_internal;
11289 } 11289 }
11290 } 11290 }
11291 11291
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
11581 if (!interceptor->getter()->IsUndefined()) { 11581 if (!interceptor->getter()->IsUndefined()) {
11582 v8::NamedPropertyGetter getter = 11582 v8::NamedPropertyGetter getter =
11583 v8::ToCData<v8::NamedPropertyGetter>(interceptor->getter()); 11583 v8::ToCData<v8::NamedPropertyGetter>(interceptor->getter());
11584 LOG(isolate, 11584 LOG(isolate,
11585 ApiNamedPropertyAccess("interceptor-named-get", *holder_handle, name)); 11585 ApiNamedPropertyAccess("interceptor-named-get", *holder_handle, name));
11586 CustomArguments args(isolate, interceptor->data(), receiver, this); 11586 CustomArguments args(isolate, interceptor->data(), receiver, this);
11587 v8::AccessorInfo info(args.end()); 11587 v8::AccessorInfo info(args.end());
11588 v8::Handle<v8::Value> result; 11588 v8::Handle<v8::Value> result;
11589 { 11589 {
11590 // Leaving JavaScript. 11590 // Leaving JavaScript.
11591 VMState state(isolate, EXTERNAL); 11591 VMState<EXTERNAL> state(isolate);
11592 result = getter(v8::Utils::ToLocal(name_handle), info); 11592 result = getter(v8::Utils::ToLocal(name_handle), info);
11593 } 11593 }
11594 RETURN_IF_SCHEDULED_EXCEPTION(isolate); 11594 RETURN_IF_SCHEDULED_EXCEPTION(isolate);
11595 if (!result.IsEmpty()) { 11595 if (!result.IsEmpty()) {
11596 *attributes = NONE; 11596 *attributes = NONE;
11597 Handle<Object> result_internal = v8::Utils::OpenHandle(*result); 11597 Handle<Object> result_internal = v8::Utils::OpenHandle(*result);
11598 result_internal->VerifyApiCallResultType(); 11598 result_internal->VerifyApiCallResultType();
11599 return *result_internal; 11599 return *result_internal;
11600 } 11600 }
11601 } 11601 }
(...skipping 2927 matching lines...) Expand 10 before | Expand all | Expand 10 after
14529 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); 14529 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER);
14530 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); 14530 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER);
14531 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); 14531 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER);
14532 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); 14532 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER);
14533 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); 14533 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER);
14534 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); 14534 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER);
14535 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); 14535 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER);
14536 } 14536 }
14537 14537
14538 } } // namespace v8::internal 14538 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/log-utils.cc ('k') | src/profile-generator-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698