| Index: src/runtime.cc
|
| ===================================================================
|
| --- src/runtime.cc (revision 941)
|
| +++ src/runtime.cc (working copy)
|
| @@ -1733,13 +1733,19 @@
|
| ASSERT(args.length() == 2);
|
|
|
| // Fast cases for getting named properties of the receiver JSObject
|
| - // itself. The global proxy objects has to be excluded since
|
| - // LocalLookup on the global proxy object can return a valid result
|
| - // eventhough the global proxy object never has properties. This is
|
| - // the case because the global proxy object forwards everything to
|
| - // its hidden prototype including local lookups.
|
| + // itself.
|
| + //
|
| + // The global proxy objects has to be excluded since LocalLookup on
|
| + // the global proxy object can return a valid result eventhough the
|
| + // global proxy object never has properties. This is the case
|
| + // because the global proxy object forwards everything to its hidden
|
| + // prototype including local lookups.
|
| + //
|
| + // Additionally, we need to make sure that we do not cache results
|
| + // for objects that require access checks.
|
| if (args[0]->IsJSObject() &&
|
| !args[0]->IsJSGlobalProxy() &&
|
| + !args[0]->IsAccessCheckNeeded() &&
|
| args[1]->IsString()) {
|
| JSObject* receiver = JSObject::cast(args[0]);
|
| String* key = String::cast(args[1]);
|
|
|