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

Unified Diff: src/stub-cache.cc

Issue 23620036: Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: no mips Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: src/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index f83a7d2a88f6eabbc472f65e6471416a01a5bbac..f3dbd64f147045e5a06b33f769c13d7f7b183179 100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -1278,10 +1278,14 @@ RUNTIME_FUNCTION(MaybeObject*, LoadPropertyWithInterceptorOnly) {
FUNCTION_CAST<v8::NamedPropertyGetterCallback>(getter_address);
ASSERT(getter != NULL);
- Handle<JSObject> receiver =
- args.at<JSObject>(kArgsOffset - PCA::kThisIndex);
- Handle<JSObject> holder =
- args.at<JSObject>(kArgsOffset - PCA::kHolderIndex);
+ int this_index = kArgsOffset - PCA::kThisIndex;
+ int holder_index = kArgsOffset - PCA::kHolderIndex;
+ if (PCA::kThisIndex < PCA::kReturnValueOffset)
Michael Starzinger 2013/09/11 09:55:19 Instead of overlaying the indices used for the arg
marja 2013/09/11 16:35:32 Done.
+ this_index -= 2;
+ if (PCA::kHolderIndex < PCA::kReturnValueOffset)
+ holder_index -= 2;
+ Handle<JSObject> receiver = args.at<JSObject>(this_index);
+ Handle<JSObject> holder = args.at<JSObject>(holder_index);
PropertyCallbackArguments callback_args(isolate,
interceptor_info->data(),
*receiver,
@@ -1330,10 +1334,14 @@ static MaybeObject* LoadWithInterceptor(Arguments* args,
ASSERT(kArgsOffset == 2);
// No ReturnValue in interceptors.
ASSERT_EQ(kArgsOffset + PCA::kArgsLength - 2, args->length());
- Handle<JSObject> receiver_handle =
- args->at<JSObject>(kArgsOffset - PCA::kThisIndex);
- Handle<JSObject> holder_handle =
- args->at<JSObject>(kArgsOffset - PCA::kHolderIndex);
+ int this_index = kArgsOffset - PCA::kThisIndex;
+ int holder_index = kArgsOffset - PCA::kHolderIndex;
+ if (PCA::kThisIndex < PCA::kReturnValueOffset)
+ this_index -= 2;
+ if (PCA::kHolderIndex < PCA::kReturnValueOffset)
+ holder_index -= 2;
+ Handle<JSObject> receiver_handle = args->at<JSObject>(this_index);
+ Handle<JSObject> holder_handle = args->at<JSObject>(holder_index);
Isolate* isolate = receiver_handle->GetIsolate();

Powered by Google App Engine
This is Rietveld 408576698