Revision: 18286
Author: [email protected]
Date: Tue Dec 10 13:11:08 2013 UTC
Log: Fix patching the receiver (global object -> global proxy) after
the interceptor.
This is a temporary fix that will be replaced by loading the proxy from the
target function.
[email protected]
Review URL: https://chromiumcodereview.appspot.com/108913006
http://code.google.com/p/v8/source/detail?r=18286
Modified:
/branches/bleeding_edge/src/arm/stub-cache-arm.cc
/branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
/branches/bleeding_edge/src/x64/stub-cache-x64.cc
=======================================
--- /branches/bleeding_edge/src/arm/stub-cache-arm.cc Fri Dec 6 11:45:26
2013 UTC
+++ /branches/bleeding_edge/src/arm/stub-cache-arm.cc Tue Dec 10 13:11:08
2013 UTC
@@ -1019,7 +1019,7 @@
// holder haven't changed and thus we can use cached constant function.
if (*interceptor_holder != lookup->holder()) {
stub_compiler_->CheckPrototypes(
- IC::CurrentTypeOf(interceptor_holder, masm->isolate()), receiver,
+ IC::CurrentTypeOf(interceptor_holder, masm->isolate()), holder,
handle(lookup->holder()), scratch1, scratch2, scratch3,
name, depth2, miss);
} else {
@@ -1036,7 +1036,7 @@
masm, optimization, arguments_.immediate(), false);
} else {
Handle<JSFunction> function = optimization.constant_function();
- stub_compiler_->GenerateJumpFunctionIgnoreReceiver(function);
+ stub_compiler_->GenerateJumpFunction(object, function);
}
// Deferred code for fast API call case---clean preallocated space.
@@ -1094,7 +1094,7 @@
masm, receiver, holder, name_, holder_obj,
IC::kLoadPropertyWithInterceptorOnly);
__ pop(name_); // Restore the name.
- __ pop(receiver); // Restore the holder.
+ __ pop(holder); // Restore the holder.
}
// If interceptor returns no-result sentinel, call the constant
function.
__ LoadRoot(scratch, Heap::kNoInterceptorResultSentinelRootIndex);
=======================================
--- /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Fri Dec 6 11:45:26
2013 UTC
+++ /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Tue Dec 10 13:11:08
2013 UTC
@@ -739,7 +739,7 @@
// holder haven't changed and thus we can use cached constant function.
if (*interceptor_holder != lookup->holder()) {
stub_compiler_->CheckPrototypes(
- IC::CurrentTypeOf(interceptor_holder, masm->isolate()), receiver,
+ IC::CurrentTypeOf(interceptor_holder, masm->isolate()), holder,
handle(lookup->holder()), scratch1, scratch2, scratch3,
name, depth2, miss);
} else {
@@ -755,7 +755,7 @@
GenerateFastApiCall(masm, optimization, arguments_.immediate());
} else {
Handle<JSFunction> fun = optimization.constant_function();
- stub_compiler_->GenerateJumpFunctionIgnoreReceiver(fun);
+ stub_compiler_->GenerateJumpFunction(object, fun);
}
// Deferred code for fast API call case---clean preallocated space.
@@ -815,7 +815,7 @@
IC::kLoadPropertyWithInterceptorOnly);
__ pop(name_); // Restore the name.
- __ pop(receiver); // Restore the holder.
+ __ pop(holder); // Restore the holder.
// Leave the internal frame.
}
=======================================
--- /branches/bleeding_edge/src/x64/stub-cache-x64.cc Fri Dec 6 11:45:26
2013 UTC
+++ /branches/bleeding_edge/src/x64/stub-cache-x64.cc Tue Dec 10 13:11:08
2013 UTC
@@ -731,7 +731,7 @@
// holder haven't changed and thus we can use cached constant function.
if (*interceptor_holder != lookup->holder()) {
stub_compiler_->CheckPrototypes(
- IC::CurrentTypeOf(interceptor_holder, masm->isolate()), receiver,
+ IC::CurrentTypeOf(interceptor_holder, masm->isolate()), holder,
handle(lookup->holder()), scratch1, scratch2, scratch3,
name, depth2, miss);
} else {
@@ -747,7 +747,7 @@
GenerateFastApiCall(masm, optimization, arguments_.immediate());
} else {
Handle<JSFunction> fun = optimization.constant_function();
- stub_compiler_->GenerateJumpFunctionIgnoreReceiver(fun);
+ stub_compiler_->GenerateJumpFunction(object, fun);
}
// Deferred code for fast API call case---clean preallocated space.
@@ -807,7 +807,7 @@
IC::kLoadPropertyWithInterceptorOnly);
__ pop(name_); // Restore the name.
- __ pop(receiver); // Restore the holder.
+ __ pop(holder); // Restore the holder.
// Leave the internal frame.
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.