Index: src/stub-cache.cc |
diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
index c942d9d6824cc9d3a32798840e5b9363a581872c..c6a79e7c480f1c14be38b884fd8a00b3b06c1ac6 100644 |
--- a/src/stub-cache.cc |
+++ b/src/stub-cache.cc |
@@ -790,11 +790,11 @@ Object* StoreCallbackProperty(Arguments args) { |
* provide any value for the given name. |
*/ |
Object* LoadPropertyWithInterceptorOnly(Arguments args) { |
- JSObject* receiver_handle = JSObject::cast(args[0]); |
- JSObject* holder_handle = JSObject::cast(args[1]); |
- Handle<String> name_handle = args.at<String>(2); |
- Handle<InterceptorInfo> interceptor_info = args.at<InterceptorInfo>(3); |
- Object* data_handle = args[4]; |
+ Handle<String> name_handle = args.at<String>(0); |
+ Handle<InterceptorInfo> interceptor_info = args.at<InterceptorInfo>(1); |
+ ASSERT(args[2]->IsJSObject()); // Receiver. |
+ ASSERT(args[3]->IsJSObject()); // Holder. |
+ ASSERT(args.length() == 5); // Last arg is data object. |
Address getter_address = v8::ToCData<Address>(interceptor_info->getter()); |
v8::NamedPropertyGetter getter = |
@@ -803,8 +803,7 @@ Object* LoadPropertyWithInterceptorOnly(Arguments args) { |
{ |
// Use the interceptor getter. |
- CustomArguments args(data_handle, receiver_handle, holder_handle); |
- v8::AccessorInfo info(args.end()); |
+ v8::AccessorInfo info(args.arguments() - 2); |
HandleScope scope; |
v8::Handle<v8::Value> r; |
{ |
@@ -842,11 +841,11 @@ static Object* ThrowReferenceError(String* name) { |
static Object* LoadWithInterceptor(Arguments* args, |
PropertyAttributes* attrs) { |
- Handle<JSObject> receiver_handle = args->at<JSObject>(0); |
- Handle<JSObject> holder_handle = args->at<JSObject>(1); |
- Handle<String> name_handle = args->at<String>(2); |
- Handle<InterceptorInfo> interceptor_info = args->at<InterceptorInfo>(3); |
- Handle<Object> data_handle = args->at<Object>(4); |
+ Handle<String> name_handle = args->at<String>(0); |
+ Handle<InterceptorInfo> interceptor_info = args->at<InterceptorInfo>(1); |
+ Handle<JSObject> receiver_handle = args->at<JSObject>(2); |
+ Handle<JSObject> holder_handle = args->at<JSObject>(3); |
+ ASSERT(args->length() == 5); // Last arg is data object. |
Address getter_address = v8::ToCData<Address>(interceptor_info->getter()); |
v8::NamedPropertyGetter getter = |
@@ -855,8 +854,7 @@ static Object* LoadWithInterceptor(Arguments* args, |
{ |
// Use the interceptor getter. |
- CustomArguments args(*data_handle, *receiver_handle, *holder_handle); |
- v8::AccessorInfo info(args.end()); |
+ v8::AccessorInfo info(args->arguments() - 2); |
HandleScope scope; |
v8::Handle<v8::Value> r; |
{ |
@@ -891,7 +889,7 @@ Object* LoadPropertyWithInterceptorForLoad(Arguments args) { |
// If the property is present, return it. |
if (attr != ABSENT) return result; |
- return ThrowReferenceError(String::cast(args[2])); |
+ return ThrowReferenceError(String::cast(args[0])); |
} |