New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 255 users

Comments by non-members will not trigger notification emails to users who starred this issue.
Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2016
Cc:
Components:
HW: All
OS: All
Priority: 2
Type: FeatureRequest


Sign in to add a comment
Implement Proxy proposal
Project Member Reported by rossberg@chromium.org, Jul 7 2011 Back to list
Proxy implementation is still rudimentary.

Should work:

- get and set traps.
- Object.defineProperty and Object.defineProperties
- object equality
- typeof
- instanceof
- Object.getPrototype
- Object.getOwnPropertyNames and Object.keys
- ToString and ToValue

Not yet working:

- Object.getOwnPropertyDescriptor
- Object.prototype.hasOwnProperty
- Object.seal, Object.freeze, and Object.preventExtension
- Object.isSealed, Object.isFrozen, and Object.isExtensible
- in
- for-in
- with
- function proxies

Also, more test cases are needed.

 
Issue 633 has been merged into this issue.
Now working:

- delete
- Object.getOwnPropertyDescriptor
- Object.seal, Object.freeze, and Object.preventExtension
- Object.isSealed, Object.isFrozen, and Object.isExtensible

Comment 3 by n...@andyet.net, Aug 31 2011
Would love to see function proxies working. Not sure how applicable it would be to the integration into V8 core, but they have been implemented on top of V8 in https://github.com/samshull/node-proxy if that's helpful.
Sorry, I haven't updated this in a while. Also working:

- all Object.prototype methods
- in
- plus lots of bug fixes and corner cases

The function proxy implementation is currently under review and should land in a little while. See:

http://codereview.chromium.org/7623011/
http://codereview.chromium.org/7628021/

The first implementation is approaching completion. All of the following should now also be working:

- function proxies
- proxies as keys to WeakMaps
- proxies in the prototype chain
- elements (integer-indexed properties)
- descriptor conversion

The main features still missing are for-in loops and the with statement. Also, the API is not proxy aware yet.

Looks like there's a problem with the this-binding for function proxies. Running the attached file should print `42` not `undefined`. 
fproxy.js
1.8 KB View Download
Update: the implementation is feature-complete (and the above issue fixed).

The only known issues at the moment are:

1. Using `new' with a function proxy that does not have an explicit construct trap sometimes sets the wrong prototype.

2. A function proxy with a construct trap returning a non-object will no longer return the right result when frozen.

3. In some cases, the call trap of a function proxy will receive the global object even though the trap is a strict-mode function.

If you observe other issues, please report them here.
Awesome! When would app developers be able to use proxies in V8 without flag?
We have no immediate plans for that. The feature has to be field-tested first. Since it touches so many corners of the implementation, there is lots of opportunities for fatal bugs. So we want to be confident that everything works as expected before turning it on for everybody.

You can help by trying it out. :)

Comment 10 by pim...@live.nl, Dec 4 2011
I think I may have encountered a bug regarding to the proxy implementation. Please see the attached script. For some reason, the following code does not work properly:

    var key = "foo";

    proxy["foo"] = "bar"; // triggers the `set` function on the proxy
    proxy[ key ] = "bar"; // does _not_ trigger the `set` function on the proxy (bug?)
proxytest.js
408 bytes View Download
Comment 11 by pim...@live.nl, Dec 6 2011
Regarding comment #10, perhaps it might be useful to see a little more detail on what cases fail.

Given a proxy "proxy" with a "set" trap, only the "PASS" marked expressions of the following cases cause the "set" trap to be triggered. The "FAIL" marked expressions somehow do *not* make the "set" trap get triggered.

    var key = "foo";

    proxy.foo = "bar";         // PASS
    proxy["foo"] = "bar";      // PASS
    proxy["foo" + ""] = "bar"; // *FAIL*
    proxy[key] = "bar";        // *FAIL*
    proxy[123] = "bar";        // *FAIL*
    proxy["123"] = "bar";      // *FAIL*
    proxy["123foo"] = "bar";   // PASS

Does anyone know whether this behaviour is buggy or intended?
proxy_bug_tests.js
614 bytes View Download
That certainly is a bug. Thanks for reporting! I will look into it soon.

/Andreas
Hm, how did you run this, what architecture, and what version of V8 and/or Chrome? I'm afraid I cannot reproduce the failures in the D8 shell (with s/console.log/print/g), on none of our supported architectures.

Comment 14 by pim...@live.nl, Dec 7 2011
I'm running V8 as part of Node.js version 0.6.5, which uses V8 version 3.6.6.11. I now see it's not the latest version, so perhaps it has been fixed already. In that case I'm sorry.

I'm not very technical but I can tell have an Intel T1400 processor.
Ah, OK. Yes, the proxy implementation is far from complete in that version of V8. You'd need to update to a more recent 3.7.x.
Comment 16 by pim...@live.nl, Jan 20 2012
I'm sorry for posting again, but I would like to mention the following behaviour which I think is a bug. I can reproduce it with the latest revision.

When creating a proxy function, calling it works fine. However, passing it as the argument to e.g. `Array.prototype.map` fails. It throws "illegal access" in that case.

Please see the attached test case.
proxy_func_map.js
302 bytes View Download
Thanks for the bug report! Yes, this is a bug, the fix should land soon.

See: https://chromiumcodereview.appspot.com/9270004/

Comment 18 by tvcut...@gmail.com, May 24 2012
There seems to be an issue with the getOwnPropertyNames and keys traps, when they return property names that are also present in Object.prototype. Somehow this raises a TypeError that duplicate property names were returned. See the attached testcase.
prototype_keys_bug.js
463 bytes View Download
Hi Tom, thanks for the bug report.

I fixed this (including the broken error message with the "undefined" trap name), and also the receiver bug you point out on github (https://github.com/tvcutsem/harmony-reflect/issues/4#issuecomment-5831098).

On the other hand, as you probably have guessed, the fact that V8 does not call the `has' trap separately for assignment to inherited properties is intentional, and should match the refactored spec.
When will this land? I've been waiting for this feature to be available in v8 and Chrome
If you are referring to proxies in Javascript, it already landed, but hidden behind a flag. To turn it on, go to chrome://flags/ and "Enable Experimental JavaScript".
Comment 22 by metaw...@gmail.com, Nov 21 2012
Google Apps Script's Html Service relies on Firefox's proxies implementation and falls back on a much less efficient hack on other browsers; it would be great for us if it could come out from behind the flag soon.
Comment 23 by bruan...@gmail.com, Nov 21 2012
How much are they relying on it? Firefox implementation is incomplete and has many known (and likely unknown!) bugs.
Also, to my knowledge, current V8 implementation relates to the old Proxy design. I don't think work to support direct proxies has started (if I'm wrong, please point me to the right V8 bug)
Re: comment 23 -- "(and likely unknown!) bugs" is LOL unreal. Since when did V8 ship without unknown bugs? How do you prove a negative?

How are you going to find and fix proxy bugs that Google itself seems to want fixed, without turning on proxies? How are you going to help fix the ES6 draft spec, which we helped get in shape by prototyping proxies two years ago?

Fear of bugs does not prevent all sorts of innovation from being shipped in Chrome -- some of it on no standards track and very unlikely ever to be.

BTW SpiderMonkey supports direct proxies (yes, with bugs -- please file them as they become known) now. Time to get V8 interop-testing so we can fix the spec as well as the implementations, and lead the other browsers to implement as well.

/be
Ghostery, a popular privacy extension for browsers, is waiting on Proxies in V8 to provide better script surrogation to its users.

Script surrogation is the act of replacing blocked tracker scripts with dummy copies in order to allow badly-coded websites to continue to function. However, listing out every method call for every tracker script isn't scalable.

__noSuchMethod__ is Firefox-only and deprecated. Proxies are the future, but have been "on the way" for a while now.
Comment 26 by arte...@gmail.com, Jan 31 2013
Any plans on when this is going to be implemented?
Comment 27 by arv@chromium.org, Jan 31 2013
Proxies are still seeing a lot of churn in the ES6 draft so it seems better to wait until the API stabilizes a bit more.
By "this" you mean?

No concrete plans right now. There is some likelihood that the ES6 proxy design will undergo another substantial change, so it seems wiser to hold off.
Comment 29 by arte...@gmail.com, Jan 31 2013
I'm sorry, guys. By "this" I meant proxies, of course.

Thanks for the info!
hg7fb9fu6qn9
Comment 31 by bruan...@gmail.com, Oct 19 2013
"Proxies are still seeing a lot of churn in the ES6 draft so it seems better to wait until the API stabilizes a bit more."
"There is some likelihood that the ES6 proxy design will undergo another substantial change, so it seems wiser to hold off."
=> At the May 2013 TC39 meeting, it's been agreed that direct proxies (new Proxy(target, handler)) would be the final design.
https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-05/may-21.md#44-proxies

From what I know, the design is now very stable. Maybe time to reconsider? :-)
The Node.js team has a use for direct proxies: allowing us to create fake globals that intercept defineProperties on them for use in the vm module. Currently we use ObjectTemplate which has GlobalPropertyGetterCallback, GlobalPropertySetterCallback, GlobalPropertyQueryCallback, GlobalPropertyDeleterCallback, GlobalPropertyEnumeratorCallback, but this does not encompass all operations. In particular, it does not have defineProperty, so if people declare global functions inside the vm, we have no way to intercept that.

If direct proxies were available, we could turn them on in V8, then use them to implement this desired proxying behavior. As is, we shouldn't turn on --harmony-proxies, because then Node.js consumers would start using the old API.

More details about the particular use case at https://github.com/joyent/node/pull/6417.
Comment 33 by slbre...@gmail.com, Oct 29 2013
Since harmony is almost finished, can we get any idea of when updating proxies to match the direct proxy design will start being looked at?
ES6 comes with a _lot_ of new features, many of which we still have to work on. To be honest, proxies are not at the top of our priority list.
I'm not asking for a fully functional direct proxy implementation in chrome (V8), all I would like to know is that when ES6 comes out I'm gonna be able to use the same code in firefox and chrome (with direct proxies).
Is there any chance for that?
You can achieve writing the same Proxy code for firefox, chrome and node today by using my shim:
<https://github.com/tvcutsem/harmony-reflect>
It's not perfect, but people are using it so it could be useful in the short term.
It is very unlikely that we are going to be finished with implementing all of ES6 the day the standard is officially sanctioned, if that's what you are asking.
Thats obvious, my quetion was only about direct proxies since their implementation is nearly complete in gecko.
I thought I already answered that: it's not high on our priority list, so it gets done when we get to it. The ES6 spec release date has no more influence on proxies than on any other ES6 feature.
Comment 40 by nat...@github.com, Apr 3 2014
A stable proxies implementation could also help us on the Atom team. We'd love to start experimenting with membranes to implement sophisticated security policies.
Blockedon: v8:3310
I'd just like to add a friendly +1 here. Been experimenting with proxies a lot in FF, and I'm very eagerly awaiting this in V8.
@Ross wouldn't it better to finish implementing ES6 before the standard is officially sanctionned, so you can give some implementor feedback before shipping flawed specs ?

Anyway, we're really looking forward to be able to use ES6 feature :)
Looks like the old Proxy (pre-direct) implementation was removed, so harmony-reflect no longer works. Is there any intention to restore the old Proxy, or will it be gone until the ES6 direct-proxy implementation is ready?
Comment 45 by arv@chromium.org, Oct 15 2014
It wasn't removed. It was removed from --harmony due to some security(?) issues. Try using --harmony-proxies instead.
I think my issue belongs in the chromium issue tracker instead of here - it's no longer exposed to the browser, although it is available in v8. Sorry for the confusion.
Comment 47 by tomvc...@gmail.com, Oct 16 2014
Where can I read more about the (security?) issues that caused the old Proxy object to be removed? Thanks.
#46: no reason to report this on chromium, here was the right place.
Blockedon: v8:2141 v8:2145 v8:3510
Comment 50 by habl...@google.com, Apr 29 2015
Status: Assigned
Blockedon: v8:2142
Blockedon: v8:4130
Any estimate on when this can land?
#53: None.
+1 for Proxy object support. Please :)
Blockedon: chromium:507282
Blockedon: v8:3270 v8:4381
Cc: bmeu...@chromium.org neis@chromium.org
Labels: HW-All Area-Language OS-All
Are there any plans to get this even under a flag in the near future? 
Cc: cbruni@chromium.org
Project Member Comment 61 by bugdroid1@chromium.org, Nov 12 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d001cd5665a54abcecddaf2ad0a4658e41ab22af

commit d001cd5665a54abcecddaf2ad0a4658e41ab22af
Author: jkummerow <jkummerow@chromium.org>
Date: Thu Nov 12 14:17:35 2015

[proxies] Teach ToPropertyDescriptor to deal with Proxies

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1438233002

Cr-Commit-Position: refs/heads/master@{#31962}

[modify] http://crrev.com/d001cd5665a54abcecddaf2ad0a4658e41ab22af/src/property-descriptor.cc
[modify] http://crrev.com/d001cd5665a54abcecddaf2ad0a4658e41ab22af/src/property-descriptor.h
[modify] http://crrev.com/d001cd5665a54abcecddaf2ad0a4658e41ab22af/src/runtime/runtime-object.cc

Project Member Comment 62 by bugdroid1@chromium.org, Nov 13 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/24e058d0ede601c683b1128419c9f7775d546af8

commit 24e058d0ede601c683b1128419c9f7775d546af8
Author: cbruni <cbruni@chromium.org>
Date: Fri Nov 13 14:13:50 2015

[runtime] support new Proxy() instead of Proxy.create and install getPrototypeOf trap

LOG=N
BUG=v8:1543

Review URL: https://codereview.chromium.org/1417063011

Cr-Commit-Position: refs/heads/master@{#31983}

[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/bootstrapper.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/builtins.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/factory.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/factory.h
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/heap/heap.h
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/js/messages.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/js/proxy.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/messages.h
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/objects-inl.h
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/objects-printer.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/objects.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/objects.h
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/runtime/runtime-debug.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/runtime/runtime-object.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/es6/iteration-semantics.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/es6/regress/regress-cr493566.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/for-in-opt.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-example-membrane.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-for.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-hash.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-json.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-symbols.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-with-unscopables.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies-with.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxies.js
[add] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/proxy/proxy-getPrototypeOf.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/reflect-enumerate-opt.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-2219.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-2225.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-405844.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-crbug-448730.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-crbug-461520.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/harmony/regress/regress-lookup-transition.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/mjsunit.status
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/readonly.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/regress/regress-crbug-493568.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/regress/regress-crbug-505907.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/regress/regress-crbug-506956.js
[modify] http://crrev.com/24e058d0ede601c683b1128419c9f7775d546af8/test/mjsunit/strong/load-proxy.js

Project Member Comment 63 by bugdroid1@chromium.org, Nov 16 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c3688c1aec3a8658271d4d8d248c0b26f7925f9d

commit c3688c1aec3a8658271d4d8d248c0b26f7925f9d
Author: jkummerow <jkummerow@chromium.org>
Date: Mon Nov 16 11:59:33 2015

Implement JSProxy::GetOwnPropertyDescriptor.

Next step: expose it to JS and test it.

BUG=v8:1543
LOG=n
R=cbruni@chromium.org

Review URL: https://codereview.chromium.org/1439353004

Cr-Commit-Position: refs/heads/master@{#32006}

[modify] http://crrev.com/c3688c1aec3a8658271d4d8d248c0b26f7925f9d/src/messages.h
[modify] http://crrev.com/c3688c1aec3a8658271d4d8d248c0b26f7925f9d/src/objects.cc
[modify] http://crrev.com/c3688c1aec3a8658271d4d8d248c0b26f7925f9d/src/objects.h

Project Member Comment 64 by bugdroid1@chromium.org, Nov 17 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9c35e4b23ce631013376a11b8c27d3cb86850fd8

commit 9c35e4b23ce631013376a11b8c27d3cb86850fd8
Author: jkummerow <jkummerow@chromium.org>
Date: Tue Nov 17 13:08:24 2015

[proxies] Wire up Object.getOwnPropertyDescriptor

using the new JSReceiver::GetOwnPropertyDescriptor implementation.

BUG=v8:1543
LOG=n
R=cbruni@chromium.org

Review URL: https://codereview.chromium.org/1451703003

Cr-Commit-Position: refs/heads/master@{#32037}

[modify] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/src/js/v8natives.js
[modify] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/src/objects.cc
[modify] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/src/objects.h
[modify] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/src/runtime/runtime-object.cc
[modify] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/src/runtime/runtime.h
[add] http://crrev.com/9c35e4b23ce631013376a11b8c27d3cb86850fd8/test/mjsunit/harmony/proxies-get-own-property-descriptor.js

Project Member Comment 65 by bugdroid1@chromium.org, Nov 19 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6f0850c63d47defd37c76ac4d654df6a3919635e

commit 6f0850c63d47defd37c76ac4d654df6a3919635e
Author: jkummerow <jkummerow@chromium.org>
Date: Thu Nov 19 09:21:07 2015

[proxies] Update Object.defineProperty/ies for JSProxies

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1456613002

Cr-Commit-Position: refs/heads/master@{#32103}

[modify] http://crrev.com/6f0850c63d47defd37c76ac4d654df6a3919635e/src/js/v8natives.js
[modify] http://crrev.com/6f0850c63d47defd37c76ac4d654df6a3919635e/src/objects.cc
[modify] http://crrev.com/6f0850c63d47defd37c76ac4d654df6a3919635e/src/objects.h
[add] http://crrev.com/6f0850c63d47defd37c76ac4d654df6a3919635e/test/mjsunit/harmony/proxies-define-property.js

Project Member Comment 66 by bugdroid1@chromium.org, Nov 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3

commit 39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3
Author: neis <neis@chromium.org>
Date: Thu Nov 26 09:34:11 2015

[proxies] Implement [[Delete]].

LOG=N
BUG=v8:1543

Review URL: https://codereview.chromium.org/1479543002

Cr-Commit-Position: refs/heads/master@{#32320}

[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/api.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/bootstrapper.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/builtins.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/messages.h
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/objects.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/objects.h
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/runtime/runtime-object.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/runtime/runtime-scopes.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/src/runtime/runtime.h
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/test/cctest/test-elements-kind.cc
[modify] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/test/cctest/test-heap.cc
[add] http://crrev.com/39efa4348aeaa1f1c316d5c8c9a87cdd0c591ef3/test/mjsunit/harmony/proxies-delete-property.js

Project Member Comment 67 by bugdroid1@chromium.org, Nov 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a

commit 88ac8aa5236195137d4a7aa18bcc5650a3bdca5a
Author: verwaest <verwaest@chromium.org>
Date: Thu Nov 26 15:22:40 2015

[Proxies] Support constructable proxy as new.target

BUG=v8:1543, v8:3330, v8:3931
LOG=n

Review URL: https://codereview.chromium.org/1481613003

Cr-Commit-Position: refs/heads/master@{#32346}

[modify] http://crrev.com/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a/src/objects.cc
[modify] http://crrev.com/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a/src/objects.h
[modify] http://crrev.com/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a/src/runtime/runtime-object.cc
[add] http://crrev.com/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a/test/mjsunit/es6/classes-proxy.js

Project Member Comment 68 by bugdroid1@chromium.org, Nov 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/87f7dc61faac63fd017b84eb214bae0a34f73514

commit 87f7dc61faac63fd017b84eb214bae0a34f73514
Author: machenbach <machenbach@chromium.org>
Date: Thu Nov 26 16:20:51 2015

Revert of [Proxies] Support constructable proxy as new.target (patchset #3 id:40001 of https://codereview.chromium.org/1481613003/ )

Reason for revert:
[Sheriff] Breaks:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/3977

Original issue's description:
> [Proxies] Support constructable proxy as new.target
>
> BUG=v8:1543, v8:3330, v8:3931
> LOG=n
>
> Committed: https://crrev.com/88ac8aa5236195137d4a7aa18bcc5650a3bdca5a
> Cr-Commit-Position: refs/heads/master@{#32346}

TBR=ishell@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1543, v8:3330, v8:3931

Review URL: https://codereview.chromium.org/1480673004

Cr-Commit-Position: refs/heads/master@{#32350}

[modify] http://crrev.com/87f7dc61faac63fd017b84eb214bae0a34f73514/src/objects.cc
[modify] http://crrev.com/87f7dc61faac63fd017b84eb214bae0a34f73514/src/objects.h
[modify] http://crrev.com/87f7dc61faac63fd017b84eb214bae0a34f73514/src/runtime/runtime-object.cc
[delete] http://crrev.com/138d9bae5d7014e0d205634a49b5eac3697744c8/test/mjsunit/es6/classes-proxy.js

Project Member Comment 69 by bugdroid1@chromium.org, Nov 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a

commit 7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a
Author: verwaest <verwaest@chromium.org>
Date: Fri Nov 27 12:16:32 2015

[Proxies] Support constructable proxy as new.target (reland)

BUG=v8:1543, v8:3330, v8:3931
LOG=n

Review URL: https://codereview.chromium.org/1481773003

Cr-Commit-Position: refs/heads/master@{#32370}

[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/arm/builtins-arm.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/arm64/builtins-arm64.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/ia32/builtins-ia32.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/mips/builtins-mips.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/mips64/builtins-mips64.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/objects.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/objects.h
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/runtime/runtime-object.cc
[modify] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/src/x64/builtins-x64.cc
[add] http://crrev.com/7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a/test/mjsunit/es6/classes-proxy.js

Project Member Comment 70 by bugdroid1@chromium.org, Nov 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/970a7ad7583c0270b86e602331a24e7cdfdadc8e

commit 970a7ad7583c0270b86e602331a24e7cdfdadc8e
Author: verwaest <verwaest@chromium.org>
Date: Fri Nov 27 21:44:27 2015

Fix Reflect.construct wrt proxy, generator, and non-subclass new.target

This makes sure that proxy + Function/Array works
Makes sure that new.target can be a generator
Makes sure that if new.target is not a subclass, but does not have a prototype, that we'll get that same prototype back the next time we look at new.target.prototype.

BUG=v8:1543, v8:3330, v8:3931
LOG=n

Review URL: https://codereview.chromium.org/1484473002

Cr-Commit-Position: refs/heads/master@{#32382}

[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/src/objects.cc
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/src/objects.h
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/src/runtime/runtime-array.cc
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/src/runtime/runtime-function.cc
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/src/runtime/runtime-object.cc
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/test/mjsunit/es6/classes-proxy.js
[modify] http://crrev.com/970a7ad7583c0270b86e602331a24e7cdfdadc8e/test/mjsunit/harmony/reflect-construct.js

Project Member Comment 71 by bugdroid1@chromium.org, Nov 28 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/42c6056e6f247724d14dc887f6619a6bf5867a97

commit 42c6056e6f247724d14dc887f6619a6bf5867a97
Author: jkummerow <jkummerow@chromium.org>
Date: Sat Nov 28 10:48:31 2015

[proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]]

Both are integrated into JSReceiver::GetKeys().

For now, the implementation ignores Symbol/DONT_ENUM filtering.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1474083003

Cr-Commit-Position: refs/heads/master@{#32384}

[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/js/proxy.js
[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/key-accumulator.cc
[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/key-accumulator.h
[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/messages.h
[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/objects.cc
[modify] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/src/objects.h
[add] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/test/mjsunit/harmony/proxies-enumerate.js
[add] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/test/mjsunit/harmony/proxies-ownkeys.js

Project Member Comment 72 by bugdroid1@chromium.org, Nov 28 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/97def40dc0b252b016e770eef0902d72643bcbaa

commit 97def40dc0b252b016e770eef0902d72643bcbaa
Author: machenbach <machenbach@chromium.org>
Date: Sat Nov 28 14:16:06 2015

Revert of [proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]] (patchset #3 id:40001 of https://codereview.chromium.org/1474083003/ )

Reason for revert:
[Sheriff] Speculative revert for gc mole:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gcmole/builds/5164

Original issue's description:
> [proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]]
>
> Both are integrated into JSReceiver::GetKeys().
>
> For now, the implementation ignores Symbol/DONT_ENUM filtering.
>
> BUG=v8:1543
> LOG=n
>
> Committed: https://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97
> Cr-Commit-Position: refs/heads/master@{#32384}

TBR=verwaest@chromium.org,bmeurer@chromium.org,jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1543

Review URL: https://codereview.chromium.org/1482113002

Cr-Commit-Position: refs/heads/master@{#32385}

[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/js/proxy.js
[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/key-accumulator.cc
[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/key-accumulator.h
[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/messages.h
[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/objects.cc
[modify] http://crrev.com/97def40dc0b252b016e770eef0902d72643bcbaa/src/objects.h
[delete] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/test/mjsunit/harmony/proxies-enumerate.js
[delete] http://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97/test/mjsunit/harmony/proxies-ownkeys.js

Project Member Comment 73 by bugdroid1@chromium.org, Nov 28 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1

commit 2fee8a0f1d3dca6fe955077c5a41020948a7a0f1
Author: jkummerow <jkummerow@chromium.org>
Date: Sat Nov 28 15:02:59 2015

[proxies] Implement [[Enumerate]] and [[OwnPropertyKeys]]

Both are integrated into JSReceiver::GetKeys().

For now, the implementation ignores Symbol/DONT_ENUM filtering.

BUG=v8:1543
LOG=n

Committed: https://crrev.com/42c6056e6f247724d14dc887f6619a6bf5867a97
Cr-Commit-Position: refs/heads/master@{#32384}

Review URL: https://codereview.chromium.org/1474083003

Cr-Commit-Position: refs/heads/master@{#32386}

[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/js/proxy.js
[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/key-accumulator.cc
[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/key-accumulator.h
[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/messages.h
[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/objects.cc
[modify] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/src/objects.h
[add] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/test/mjsunit/harmony/proxies-enumerate.js
[add] http://crrev.com/2fee8a0f1d3dca6fe955077c5a41020948a7a0f1/test/mjsunit/harmony/proxies-ownkeys.js

Project Member Comment 74 by bugdroid1@chromium.org, Nov 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0

commit 2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0
Author: jkummerow <jkummerow@chromium.org>
Date: Mon Nov 30 09:20:24 2015

[proxies] [[HasProperty]]: fix trap call.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1479143002

Cr-Commit-Position: refs/heads/master@{#32391}

[modify] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/src/contexts.h
[modify] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/src/js/proxy.js
[modify] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/src/objects.cc
[modify] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/src/objects.h
[modify] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/test/mjsunit/harmony/proxies-enumerate.js
[add] http://crrev.com/2ba464e11cb4bddc82e554ea7cd0fd28bc2936d0/test/mjsunit/harmony/proxies-has.js

Project Member Comment 75 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/48b72f3ca925e64d1aecd0fa54f9a1802e11a7f6

commit 48b72f3ca925e64d1aecd0fa54f9a1802e11a7f6
Author: mbrandy <mbrandy@us.ibm.com>
Date: Tue Dec 01 03:05:28 2015

PPC: [Proxies] Support constructable proxy as new.target (reland)

Port 7ceaf727082c5c2473afcba9c3b8bc1a7c3b498a

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:1543, v8:3330, v8:3931
LOG=n

Review URL: https://codereview.chromium.org/1480423002

Cr-Commit-Position: refs/heads/master@{#32433}

[modify] http://crrev.com/48b72f3ca925e64d1aecd0fa54f9a1802e11a7f6/src/ppc/builtins-ppc.cc

Project Member Comment 76 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/031751d5c421ac21288eb52a2d57f9816edfa910

commit 031751d5c421ac21288eb52a2d57f9816edfa910
Author: neis <neis@chromium.org>
Date: Tue Dec 01 12:27:01 2015

[proxies] Implement [[Set]].

R=rossberg
BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1481103002

Cr-Commit-Position: refs/heads/master@{#32457}

[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/api.cc
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/contexts.h
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/js/proxy.js
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/lookup.h
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/messages.h
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/objects.cc
[modify] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/src/objects.h
[add] http://crrev.com/031751d5c421ac21288eb52a2d57f9816edfa910/test/mjsunit/harmony/proxies-set.js

Project Member Comment 77 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703

commit 7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 01 14:04:16 2015

[runtime] [proxy] implementing [[Get]] trap.

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1482283002

Cr-Commit-Position: refs/heads/master@{#32466}

[modify] http://crrev.com/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703/src/js/proxy.js
[modify] http://crrev.com/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703/src/objects.cc
[modify] http://crrev.com/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703/src/objects.h
[rename] http://crrev.com/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703/test/mjsunit/harmony/proxies-get-prototype-of.js
[add] http://crrev.com/7e8fa4b96a02fcb0e21e13e8439b2e7aa33a3703/test/mjsunit/harmony/proxies-get.js

Project Member Comment 78 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031

commit d9e0a5a9adc3e6893c6be0b5494b30e45fda4031
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 01 15:59:34 2015

[runtime] [proxy] Adding [[SetPrototypeOf]] trap.

LOG=N
BUG=v8:1543

Review URL: https://codereview.chromium.org/1481383003

Cr-Commit-Position: refs/heads/master@{#32471}

[modify] http://crrev.com/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031/src/messages.h
[modify] http://crrev.com/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031/src/objects.cc
[modify] http://crrev.com/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031/src/objects.h
[modify] http://crrev.com/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031/src/runtime/runtime-object.cc
[add] http://crrev.com/d9e0a5a9adc3e6893c6be0b5494b30e45fda4031/test/mjsunit/harmony/proxies-set-prototype-of.js

Project Member Comment 79 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/df36d046a4b5e72a105fa2cbd370a1e0c8cf7b48

commit df36d046a4b5e72a105fa2cbd370a1e0c8cf7b48
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 01 17:11:20 2015

[runtime] [proxy] Fix Object.prototype.PropertyIsEnumerable to support
proxies.

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1484313003

Cr-Commit-Position: refs/heads/master@{#32473}

[modify] http://crrev.com/df36d046a4b5e72a105fa2cbd370a1e0c8cf7b48/src/js/v8natives.js
[modify] http://crrev.com/df36d046a4b5e72a105fa2cbd370a1e0c8cf7b48/src/runtime/runtime-object.cc
[add] http://crrev.com/df36d046a4b5e72a105fa2cbd370a1e0c8cf7b48/test/mjsunit/harmony/proxies-property-is-enumerable.js

Project Member Comment 80 by bugdroid1@chromium.org, Dec 1 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f4d4051521e329d0f45b91426a92b6e99ac3cfe0

commit f4d4051521e329d0f45b91426a92b6e99ac3cfe0
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 01 17:31:47 2015

[runtime] [proxy] Runtime_HasOwnProperty and thus
Object.prototype.hasOwnProperty should use JSReceiver::HasOwnProperty for
proxies.

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1480213004

Cr-Commit-Position: refs/heads/master@{#32475}

[modify] http://crrev.com/f4d4051521e329d0f45b91426a92b6e99ac3cfe0/src/js/v8natives.js
[modify] http://crrev.com/f4d4051521e329d0f45b91426a92b6e99ac3cfe0/src/runtime/runtime-object.cc
[add] http://crrev.com/f4d4051521e329d0f45b91426a92b6e99ac3cfe0/test/mjsunit/harmony/proxies-has-own-property.js

Project Member Comment 81 by bugdroid1@chromium.org, Dec 2 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e478a8ac39e6df65dfdae510dff7999d6fdb91b0

commit e478a8ac39e6df65dfdae510dff7999d6fdb91b0
Author: jkummerow <jkummerow@chromium.org>
Date: Wed Dec 02 10:19:38 2015

[proxies] Implement Symbol/DONT_ENUM filtering for GetKeys()

And use it to fix Object.keys() for proxies.

BUG=v8:1543
LOG=n
R=cbruni@chromium.org

Review URL: https://codereview.chromium.org/1488873003

Cr-Commit-Position: refs/heads/master@{#32496}

[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/js/proxy.js
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/js/v8natives.js
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/key-accumulator.cc
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/key-accumulator.h
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/objects.cc
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/objects.h
[modify] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/src/runtime/runtime-object.cc
[add] http://crrev.com/e478a8ac39e6df65dfdae510dff7999d6fdb91b0/test/mjsunit/harmony/proxies-keys.js

Project Member Comment 82 by bugdroid1@chromium.org, Dec 2 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2377170d076fc5d79688ce0a3863cf9179a79bfa

commit 2377170d076fc5d79688ce0a3863cf9179a79bfa
Author: bmeurer <bmeurer@chromium.org>
Date: Wed Dec 02 12:29:50 2015

[proxies] Implement the Proxy constructor in C++ fully.

The main part of the Proxy constructor was already in C++, there's
actually no point in keeping a JavaScript wrapper.

R=cbruni@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1491893002

Cr-Commit-Position: refs/heads/master@{#32507}

[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/bootstrapper.cc
[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/builtins.cc
[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/builtins.h
[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/js/proxy.js
[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/2377170d076fc5d79688ce0a3863cf9179a79bfa/src/runtime/runtime.h

Project Member Comment 83 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a330af0ed1f237ba17ac2242ce16cad5616c0597

commit a330af0ed1f237ba17ac2242ce16cad5616c0597
Author: bmeurer <bmeurer@chromium.org>
Date: Thu Dec 03 06:22:17 2015

[crankshaft] Deoptimize if HHasInPrototypeChainAndBranch hits a proxy.

The optimized code generated by Crankshaft cannot properly deal
with proxies (in the prototype chain), and there's probably no
point in trying to make that work^Wfast with Crankshaft at all.
TurboFan will handle that properly; Crankshaft just bails out
to fullcodegen, which then goes to the runtime, which should do
the right thing soon.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1492983002

Cr-Commit-Position: refs/heads/master@{#32539}

[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/arm/lithium-arm.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/arm/lithium-codegen-arm.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/arm64/lithium-arm64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/arm64/lithium-arm64.h
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/arm64/lithium-codegen-arm64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/hydrogen-instructions.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/ia32/lithium-codegen-ia32.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/ia32/lithium-ia32.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/mips/lithium-codegen-mips.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/mips/lithium-mips.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/mips64/lithium-codegen-mips64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/mips64/lithium-mips64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/x64/lithium-codegen-x64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/crankshaft/x64/lithium-x64.cc
[modify] http://crrev.com/a330af0ed1f237ba17ac2242ce16cad5616c0597/src/deoptimizer.h

Project Member Comment 84 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0e95683376c77332b6c5cf9195dd389f256e6ec4

commit 0e95683376c77332b6c5cf9195dd389f256e6ec4
Author: bmeurer <bmeurer@chromium.org>
Date: Thu Dec 03 10:43:14 2015

[proxies] InstanceOfStub should bailout to %HasInPrototypeChain for proxies.

Whenever the InstanceOfStub finds a proxy (either passed as object or
somewhere on the prototype chain), it should bailout to the
%HasInPrototypeChain runtime function, which will do the right thing
(soonish).

R=yangguo@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1492243003

Cr-Commit-Position: refs/heads/master@{#32549}

[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/arm/code-stubs-arm.cc
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/arm64/code-stubs-arm64.cc
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/arm64/macro-assembler-arm64.h
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/ia32/code-stubs-ia32.cc
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/mips/code-stubs-mips.cc
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/mips64/code-stubs-mips64.cc
[modify] http://crrev.com/0e95683376c77332b6c5cf9195dd389f256e6ec4/src/x64/code-stubs-x64.cc

Project Member Comment 85 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a32096c43c5551173bed312d153efa27c52a2fd1

commit a32096c43c5551173bed312d153efa27c52a2fd1
Author: cbruni <cbruni@chromium.org>
Date: Thu Dec 03 12:43:04 2015

[runtime] [proxy] Remove JSProxy::CallTrap

LOG=n
BUG=v8:1543

Review URL: https://codereview.chromium.org/1500553002

Cr-Commit-Position: refs/heads/master@{#32557}

[modify] http://crrev.com/a32096c43c5551173bed312d153efa27c52a2fd1/src/objects.cc
[modify] http://crrev.com/a32096c43c5551173bed312d153efa27c52a2fd1/src/objects.h

Project Member Comment 86 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4ca1180d2e7c409312ae0761cb12843989466573

commit 4ca1180d2e7c409312ae0761cb12843989466573
Author: neis <neis@chromium.org>
Date: Thu Dec 03 15:03:14 2015

[proxies] Make Object.prototype.isPrototypeOf step into proxies.

R=rossberg, verwaest@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1492863002

Cr-Commit-Position: refs/heads/master@{#32569}

[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/objects-inl.h
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/objects.cc
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/objects.h
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/prototype.h
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/runtime/runtime-debug.cc
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/src/runtime/runtime-object.cc
[modify] http://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573/test/mjsunit/harmony/proxies-get-prototype-of.js

Project Member Comment 87 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/384ec6dc92df8ad5dac328195de4866cdff46deb

commit 384ec6dc92df8ad5dac328195de4866cdff46deb
Author: neis <neis@chromium.org>
Date: Thu Dec 03 17:41:08 2015

[proxies] Adapt and reenable harmony/proxies-for.js test.

R=rossberg
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1491863002

Cr-Commit-Position: refs/heads/master@{#32579}

[modify] http://crrev.com/384ec6dc92df8ad5dac328195de4866cdff46deb/test/mjsunit/harmony/proxies-for.js
[modify] http://crrev.com/384ec6dc92df8ad5dac328195de4866cdff46deb/test/mjsunit/mjsunit.status

Project Member Comment 88 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/90e4179f2d005de3d4b302cea1b0fb59a9242b5c

commit 90e4179f2d005de3d4b302cea1b0fb59a9242b5c
Author: mbrandy <mbrandy@us.ibm.com>
Date: Thu Dec 03 19:35:39 2015

PPC: [crankshaft] Deoptimize if HHasInPrototypeChainAndBranch hits a proxy.

Port a330af0ed1f237ba17ac2242ce16cad5616c0597

Original commit message:
    The optimized code generated by Crankshaft cannot properly deal
    with proxies (in the prototype chain), and there's probably no
    point in trying to make that work^Wfast with Crankshaft at all.
    TurboFan will handle that properly; Crankshaft just bails out
    to fullcodegen, which then goes to the runtime, which should do
    the right thing soon.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1496843004

Cr-Commit-Position: refs/heads/master@{#32583}

[modify] http://crrev.com/90e4179f2d005de3d4b302cea1b0fb59a9242b5c/src/crankshaft/ppc/lithium-codegen-ppc.cc
[modify] http://crrev.com/90e4179f2d005de3d4b302cea1b0fb59a9242b5c/src/crankshaft/ppc/lithium-ppc.cc

Project Member Comment 89 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c902d4ff9de47a94e8935fc838c6468c88bbb95a

commit c902d4ff9de47a94e8935fc838c6468c88bbb95a
Author: mbrandy <mbrandy@us.ibm.com>
Date: Thu Dec 03 19:39:01 2015

PPC: [proxies] InstanceOfStub should bailout to %HasInPrototypeChain for proxies.

Port 0e95683376c77332b6c5cf9195dd389f256e6ec4

Original commit message:
    Whenever the InstanceOfStub finds a proxy (either passed as object or
    somewhere on the prototype chain), it should bailout to the
    %HasInPrototypeChain runtime function, which will do the right thing
    (soonish).

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1495513004

Cr-Commit-Position: refs/heads/master@{#32586}

[modify] http://crrev.com/c902d4ff9de47a94e8935fc838c6468c88bbb95a/src/ppc/code-stubs-ppc.cc

Project Member Comment 90 by bugdroid1@chromium.org, Dec 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/48fba9439f291edd5929e19951262dc7e8a09609

commit 48fba9439f291edd5929e19951262dc7e8a09609
Author: machenbach <machenbach@chromium.org>
Date: Thu Dec 03 20:24:01 2015

Revert of [proxies] Make Object.prototype.isPrototypeOf work with proxies. (patchset #2 id:20001 of https://codereview.chromium.org/1492863002/ )

Reason for revert:
[Sheriff] Speculative revert for:
https://uberchromegw.corp.google.com/i/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3225

Can just be relanded if it doesn't get green.

Original issue's description:
> [proxies] Make Object.prototype.isPrototypeOf step into proxies.
>
> R=rossberg, verwaest@chromium.org
> BUG=v8:1543
> LOG=n
>
> Committed: https://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573
> Cr-Commit-Position: refs/heads/master@{#32569}

TBR=rossberg@chromium.org,verwaest@chromium.org,neis@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1543

Review URL: https://codereview.chromium.org/1494283002

Cr-Commit-Position: refs/heads/master@{#32588}

[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/objects-inl.h
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/objects.cc
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/objects.h
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/prototype.h
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/runtime/runtime-debug.cc
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/src/runtime/runtime-object.cc
[modify] http://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609/test/mjsunit/harmony/proxies-get-prototype-of.js

Project Member Comment 91 by bugdroid1@chromium.org, Dec 4 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2cb40dc722340035c7d4c57449a420a315b0e7e0

commit 2cb40dc722340035c7d4c57449a420a315b0e7e0
Author: machenbach <machenbach@chromium.org>
Date: Fri Dec 04 06:38:45 2015

Reland of [proxies] Make Object.prototype.isPrototypeOf work with proxies. (patchset #1 id:1 of https://codereview.chromium.org/1494283002/ )

Reason for revert:
Did not help...

Original issue's description:
> Revert of [proxies] Make Object.prototype.isPrototypeOf work with proxies. (patchset #2 id:20001 of https://codereview.chromium.org/1492863002/ )
>
> Reason for revert:
> [Sheriff] Speculative revert for:
> https://uberchromegw.corp.google.com/i/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3225
>
> Can just be relanded if it doesn't get green.
>
> Original issue's description:
> > [proxies] Make Object.prototype.isPrototypeOf step into proxies.
> >
> > R=rossberg, verwaest@chromium.org
> > BUG=v8:1543
> > LOG=n
> >
> > Committed: https://crrev.com/4ca1180d2e7c409312ae0761cb12843989466573
> > Cr-Commit-Position: refs/heads/master@{#32569}
>
> TBR=rossberg@chromium.org,verwaest@chromium.org,neis@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:1543
>
> Committed: https://crrev.com/48fba9439f291edd5929e19951262dc7e8a09609
> Cr-Commit-Position: refs/heads/master@{#32588}

TBR=rossberg@chromium.org,verwaest@chromium.org,neis@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1543

Review URL: https://codereview.chromium.org/1491743010

Cr-Commit-Position: refs/heads/master@{#32598}

[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/objects-inl.h
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/objects.cc
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/objects.h
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/prototype.h
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/runtime/runtime-debug.cc
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/src/runtime/runtime-object.cc
[modify] http://crrev.com/2cb40dc722340035c7d4c57449a420a315b0e7e0/test/mjsunit/harmony/proxies-get-prototype-of.js

Project Member Comment 92 by bugdroid1@chromium.org, Dec 4 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/62127d00aec05847a7e1fc863290fc5d8e8799ce

commit 62127d00aec05847a7e1fc863290fc5d8e8799ce
Author: neis <neis@chromium.org>
Date: Fri Dec 04 10:55:21 2015

[proxies] Implement Proxy.revocable.

For now, we revoke a proxy by setting its handler to null (as in the spec).

Change the "target" field from Object to JSReceiver as there's no point in
allowing more.

R=jkummerow@chromium.org, rossberg
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1496243003

Cr-Commit-Position: refs/heads/master@{#32608}

[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/js/proxy.js
[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/objects-inl.h
[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/objects.cc
[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/objects.h
[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/src/runtime/runtime.h
[add] http://crrev.com/62127d00aec05847a7e1fc863290fc5d8e8799ce/test/mjsunit/harmony/proxies-revocable.js

Project Member Comment 93 by bugdroid1@chromium.org, Dec 4 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/747f455b074751040cc8ac0ede83f3880ccc488b

commit 747f455b074751040cc8ac0ede83f3880ccc488b
Author: cbruni <cbruni@chromium.org>
Date: Fri Dec 04 13:49:08 2015

[runtime] [proxy] removing JSFunctionProxy and related code.

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1496503002

Cr-Commit-Position: refs/heads/master@{#32616}

[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/include/v8.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/arm/builtins-arm.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/arm64/builtins-arm64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/compiler/js-generic-lowering.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/compiler/js-typed-lowering.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/arm/lithium-codegen-arm.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/arm64/lithium-codegen-arm64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/hydrogen.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/ia32/lithium-codegen-ia32.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/mips/lithium-codegen-mips.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/mips64/lithium-codegen-mips64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/ppc/lithium-codegen-ppc.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/x64/lithium-codegen-x64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/crankshaft/x87/lithium-codegen-x87.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/factory.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/factory.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/arm/full-codegen-arm.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/arm64/full-codegen-arm64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/ia32/full-codegen-ia32.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/mips/full-codegen-mips.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/mips64/full-codegen-mips64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/ppc/full-codegen-ppc.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/x64/full-codegen-x64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/full-codegen/x87/full-codegen-x87.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/heap/objects-visiting.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/ia32/builtins-ia32.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/js/proxy.js
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/js/v8natives.js
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/mips/builtins-mips.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/mips64/builtins-mips64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects-body-descriptors-inl.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects-debug.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects-inl.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects-printer.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/objects.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/ppc/builtins-ppc.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/runtime/runtime-interpreter.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/runtime/runtime.h
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/types.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/x64/builtins-x64.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/src/x87/builtins-x87.cc
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/test/mjsunit/harmony/proxies-for.js
[modify] http://crrev.com/747f455b074751040cc8ac0ede83f3880ccc488b/test/mjsunit/mjsunit.status

Project Member Comment 94 by bugdroid1@chromium.org, Dec 4 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7d1263db477c812d40789c75be2f368e4c0b9769

commit 7d1263db477c812d40789c75be2f368e4c0b9769
Author: jkummerow <jkummerow@chromium.org>
Date: Fri Dec 04 15:20:31 2015

[proxies] Use JSReceiver::GetKeys() for more purposes

Having beefed up GetKeys() to support everything, use it for everything now.

This fixes Object.getOwnPropertyNames and Object.getOwnPropertySymbols for
Proxies, and gets rid of a bunch of code duplication.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1498593006

Cr-Commit-Position: refs/heads/master@{#32620}

[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/debug/mirrors.js
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/isolate.cc
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/isolate.h
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/js/macros.py
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/js/prologue.js
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/js/symbol.js
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/js/v8natives.js
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/objects.cc
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/objects.h
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/runtime/runtime-object.cc
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/src/runtime/runtime.h
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/test/cctest/test-api.cc
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/test/cctest/test-debug.cc
[modify] http://crrev.com/7d1263db477c812d40789c75be2f368e4c0b9769/test/mjsunit/harmony/proxies-for.js

Project Member Comment 95 by bugdroid1@chromium.org, Dec 4 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/412aefac61098c13ac1a09036411294028293e64

commit 412aefac61098c13ac1a09036411294028293e64
Author: mbrandy <mbrandy@us.ibm.com>
Date: Fri Dec 04 17:53:51 2015

PPC: Refine "[runtime] [proxy] removing JSFunctionProxy and related code."

R=cbruni@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1500993003

Cr-Commit-Position: refs/heads/master@{#32626}

[modify] http://crrev.com/412aefac61098c13ac1a09036411294028293e64/src/ppc/builtins-ppc.cc

Project Member Comment 96 by bugdroid1@chromium.org, Dec 7 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b

commit 4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b
Author: neis <neis@chromium.org>
Date: Mon Dec 07 11:01:16 2015

[proxies] Make Object.{freeze,seal} behave correctly for proxies.

- Add JSReceiver::SetIntegrityLevel, with a fast path for regular objects.
- Make Object.{freeze,seal} call this via %Object{Freeze,Seal}, thus no longer
  using broken or deprecated functions from v8natives.js.
- Add JSReceiver::OwnPropertyKeys convenience function.
- Reenable harmony/proxies-hash.js test.

R=rossberg
BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1489423002

Cr-Commit-Position: refs/heads/master@{#32651}

[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/src/js/v8natives.js
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/src/objects.cc
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/src/objects.h
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/src/runtime/runtime-classes.cc
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/src/runtime/runtime-object.cc
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/test/mjsunit/es7/object-observe.js
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/test/mjsunit/harmony/proxies-hash.js
[add] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/test/mjsunit/harmony/proxies-integrity.js
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/test/mjsunit/mjsunit.status
[delete] http://crrev.com/ec37add662b0d2620b2bfdb796ba3418fae6383c/test/mjsunit/regress/regress-380049.js
[modify] http://crrev.com/4e2c0dd7a994a84c5ee0dae3736f8ea3640ec55b/test/mjsunit/strong/eval-direct.js

Project Member Comment 97 by bugdroid1@chromium.org, Dec 7 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e8adbe7821be5be02ef187912a74dde1152eefb1

commit e8adbe7821be5be02ef187912a74dde1152eefb1
Author: verwaest <verwaest@chromium.org>
Date: Mon Dec 07 16:35:03 2015

Reflect.construct / Proxies: Fall back to intrinsicDefaultProto for non-instance prototypes

Error still to be done, since that's not yet available in the bootstrapper.

BUG=v8:3900, v8:3931, v8:1543, v8:3330
LOG=n

Review URL: https://codereview.chromium.org/1499923002

Cr-Commit-Position: refs/heads/master@{#32662}

[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/src/bootstrapper.cc
[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/src/contexts.h
[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/src/heap/heap.h
[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/src/objects.cc
[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/src/objects.h
[modify] http://crrev.com/e8adbe7821be5be02ef187912a74dde1152eefb1/test/mjsunit/harmony/reflect-construct.js

Project Member Comment 98 by bugdroid1@chromium.org, Dec 8 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/72994124733215c15ff0022616949a2291f3c26c

commit 72994124733215c15ff0022616949a2291f3c26c
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 08 16:04:08 2015

[runtime] [proxy] Implementing [[Call]]

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1499593003

Cr-Commit-Position: refs/heads/master@{#32675}

[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/arm/builtins-arm.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/arm64/builtins-arm64.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/bootstrapper.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/builtins.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/contexts.h
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/factory.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/factory.h
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/heap/heap.h
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/ia32/builtins-ia32.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/mips/builtins-mips.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/mips64/builtins-mips64.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/objects.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/ppc/builtins-ppc.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/runtime/runtime.h
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/x64/builtins-x64.cc
[modify] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/src/x87/builtins-x87.cc
[add] http://crrev.com/72994124733215c15ff0022616949a2291f3c26c/test/mjsunit/harmony/proxies-apply.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/175c90f8f2657f22e582ca9537dfe5f1a57e2856

commit 175c90f8f2657f22e582ca9537dfe5f1a57e2856
Author: verwaest <verwaest@chromium.org>
Date: Wed Dec 09 07:53:19 2015

Support intriscDefaultProto for Error functions

BUG=v8:3900, v8:3931, v8:1543, v8:3330, v8:4002
LOG=n

Review URL: https://codereview.chromium.org/1496333002

Cr-Commit-Position: refs/heads/master@{#32692}

[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/src/bootstrapper.cc
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/src/isolate.cc
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/src/js/messages.js
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/mjsunit/error-constructors.js
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/mjsunit/es6/classes-proxy.js
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/mjsunit/harmony/reflect-construct.js
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/test262/test262.status
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/webkit/fast/js/native-error-prototype-expected.txt
[modify] http://crrev.com/175c90f8f2657f22e582ca9537dfe5f1a57e2856/test/webkit/fast/js/native-error-prototype.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/453e1dfa7abb7ab1061db3af8694a1e32d11aa71

commit 453e1dfa7abb7ab1061db3af8694a1e32d11aa71
Author: jkummerow <jkummerow@chromium.org>
Date: Wed Dec 09 09:40:34 2015

[proxies] Fix HasProperty and getOwnPropertySymbols

JSProxy::HasProperty was missing an early "return Nothing<bool>".
KeyAccumulator's FilterProxyKeys() didn't handle SKIP_STRINGS correctly.

BUG=v8:1543
LOG=n
R=cbruni@chromium.org

Review URL: https://codereview.chromium.org/1505253002

Cr-Commit-Position: refs/heads/master@{#32699}

[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/src/key-accumulator.cc
[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/src/objects-inl.h
[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/src/objects.cc
[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/test/mjsunit/harmony/proxies-define-property.js
[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/test/mjsunit/harmony/proxies-has.js
[modify] http://crrev.com/453e1dfa7abb7ab1061db3af8694a1e32d11aa71/test/mjsunit/harmony/proxies-ownkeys.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a2d5641bc42f561117ed77c28fe672d33581a4ca

commit a2d5641bc42f561117ed77c28fe672d33581a4ca
Author: cbruni <cbruni@chromium.org>
Date: Wed Dec 09 14:55:00 2015

[runtime] [proxy] implement [[Construct]]

LOG=N
BUG=v8:1543

Review URL: https://codereview.chromium.org/1509603005

Cr-Commit-Position: refs/heads/master@{#32718}

[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/arm/builtins-arm.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/arm64/builtins-arm64.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/ia32/builtins-ia32.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/messages.h
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/mips/builtins-mips.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/mips64/builtins-mips64.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/ppc/builtins-ppc.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/runtime/runtime.h
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/x64/builtins-x64.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/src/x87/builtins-x87.cc
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/test/mjsunit/es6/classes-proxy.js
[add] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/test/mjsunit/harmony/proxies-construct.js
[modify] http://crrev.com/a2d5641bc42f561117ed77c28fe672d33581a4ca/test/mjsunit/mjsunit.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/43c7ced3c1461d18b896725768139581c1ff83e8

commit 43c7ced3c1461d18b896725768139581c1ff83e8
Author: mbrandy <mbrandy@us.ibm.com>
Date: Wed Dec 09 18:34:17 2015

PPC: Refine "[runtime] [proxy] implement [[Construct]]"

R=cbruni@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
LOG=N
BUG=v8:1543

Review URL: https://codereview.chromium.org/1510283002

Cr-Commit-Position: refs/heads/master@{#32726}

[modify] http://crrev.com/43c7ced3c1461d18b896725768139581c1ff83e8/src/ppc/builtins-ppc.cc

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2d13f6ec43a717d5c27aeabd084b2338996498b3

commit 2d13f6ec43a717d5c27aeabd084b2338996498b3
Author: verwaest <verwaest@chromium.org>
Date: Thu Dec 10 00:33:19 2015

Fix Promise intrinsicDefaultProto

BUG=v8:3900, v8:3931, v8:1543, v8:3330
LOG=n

Review URL: https://codereview.chromium.org/1511893002

Cr-Commit-Position: refs/heads/master@{#32731}

[modify] http://crrev.com/2d13f6ec43a717d5c27aeabd084b2338996498b3/src/bootstrapper.cc
[modify] http://crrev.com/2d13f6ec43a717d5c27aeabd084b2338996498b3/src/contexts.h
[modify] http://crrev.com/2d13f6ec43a717d5c27aeabd084b2338996498b3/test/mjsunit/harmony/reflect-construct.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e2dd98a39e98363843aa6f9c73cdf25ce4a7072a

commit e2dd98a39e98363843aa6f9c73cdf25ce4a7072a
Author: jkummerow <jkummerow@chromium.org>
Date: Thu Dec 10 15:12:01 2015

[proxies] Fix "with" statements for proxies

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1510913005

Cr-Commit-Position: refs/heads/master@{#32756}

[modify] http://crrev.com/e2dd98a39e98363843aa6f9c73cdf25ce4a7072a/src/contexts.cc

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c20156c5501db7c2f4a51ab5812d66bf76100ef6

commit c20156c5501db7c2f4a51ab5812d66bf76100ef6
Author: cbruni <cbruni@chromium.org>
Date: Thu Dec 10 15:34:49 2015

[runtime] [proxies] adding tests for uncovered branches
fly-by fix of Proxy [[Construct]] on mips.

BUG=v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1517463002

Cr-Commit-Position: refs/heads/master@{#32758}

[modify] http://crrev.com/c20156c5501db7c2f4a51ab5812d66bf76100ef6/src/objects.cc
[modify] http://crrev.com/c20156c5501db7c2f4a51ab5812d66bf76100ef6/test/mjsunit/harmony/proxies-define-property.js
[modify] http://crrev.com/c20156c5501db7c2f4a51ab5812d66bf76100ef6/test/mjsunit/harmony/proxies-enumerate.js
[modify] http://crrev.com/c20156c5501db7c2f4a51ab5812d66bf76100ef6/test/mjsunit/harmony/proxies-set-prototype-of.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/df2a92972b0a087080e67496177e879e9409d5b0

commit df2a92972b0a087080e67496177e879e9409d5b0
Author: cbruni <cbruni@chromium.org>
Date: Fri Dec 11 14:55:20 2015

[proxy] fixing for-in for proxies, fixing harmony/proxy.js tests, improving error messages and some drive-by fixes

BUG=v8:1543
LOG=n

patch from issue 1519473002 at patchset 1 (http://crrev.com/1519473002#ps1)

Review URL: https://codereview.chromium.org/1516843002

Cr-Commit-Position: refs/heads/master@{#32801}

[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/builtins.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/compiler/js-generic-lowering.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/compiler/js-typed-lowering.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/arm/full-codegen-arm.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/arm64/full-codegen-arm64.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/ia32/full-codegen-ia32.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/mips/full-codegen-mips.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/mips64/full-codegen-mips64.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/ppc/full-codegen-ppc.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/x64/full-codegen-x64.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/full-codegen/x87/full-codegen-x87.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/js/proxy.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/js/v8natives.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/messages.h
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/src/objects.cc
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/es6/regress/regress-cr493566.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/for-in-opt.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/debug-stepin-proxies.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/proxies-enumerate.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/proxies-for.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/proxies-with.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/proxies.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/regress/regress-2219.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/regress/regress-2225.js
[delete] http://crrev.com/d83057b4ce27e9852cdca8a90d5bab9dcb4b6489/test/mjsunit/harmony/regress/regress-405844.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/regress/regress-crbug-461520.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/harmony/regress/regress-lookup-transition.js
[modify] http://crrev.com/df2a92972b0a087080e67496177e879e9409d5b0/test/mjsunit/mjsunit.status
[delete] http://crrev.com/d83057b4ce27e9852cdca8a90d5bab9dcb4b6489/test/mjsunit/regress/regress-crbug-493568.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4460b85a3e595a19a759876bd563f67bcb8cb586

commit 4460b85a3e595a19a759876bd563f67bcb8cb586
Author: neis <neis@chromium.org>
Date: Mon Dec 14 12:49:13 2015

[proxies] Add missing condition to GetProperty consistency check.

BUG=v8:1543
LOG=N
R=cbruni@chromium.org,jkummerow@chromium.org

Review URL: https://codereview.chromium.org/1519073002

Cr-Commit-Position: refs/heads/master@{#32832}

[modify] http://crrev.com/4460b85a3e595a19a759876bd563f67bcb8cb586/src/objects.cc
[modify] http://crrev.com/4460b85a3e595a19a759876bd563f67bcb8cb586/test/mjsunit/harmony/proxies-get.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5483cfea5db4733130af2cf01dd61bf9e07a548b

commit 5483cfea5db4733130af2cf01dd61bf9e07a548b
Author: jkummerow <jkummerow@chromium.org>
Date: Mon Dec 14 13:16:02 2015

[proxies] Turn on ClusterFuzz testing for Proxies and Reflect

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1514123002

Cr-Commit-Position: refs/heads/master@{#32834}

[modify] http://crrev.com/5483cfea5db4733130af2cf01dd61bf9e07a548b/src/flag-definitions.h

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e960636571729b530cc24d56ccc27d09193df9d7

commit e960636571729b530cc24d56ccc27d09193df9d7
Author: neis <neis@chromium.org>
Date: Mon Dec 14 13:44:38 2015

[proxies] Improve error messages.

This CL makes proxy-related error messages more accurate and verbose.
(Exception: those used in deprecated functions in v8natives.js.)  Some of
the old error messages were simply wrong.

On the side, fix ShouldThrow semantics of JSProxy::SetPrototype and
JSProxy::DefineOwnProperty.

R=cbruni@chromium.org, jkummerow@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1527583002

Cr-Commit-Position: refs/heads/master@{#32836}

[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/builtins.cc
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/js/proxy.js
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/js/v8natives.js
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/messages.h
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/objects.cc
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/objects.h
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/runtime/runtime-object.cc
[modify] http://crrev.com/e960636571729b530cc24d56ccc27d09193df9d7/src/runtime/runtime-proxy.cc

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/1596b015ff1ac5df72637e8423ab1467a137c8c6

commit 1596b015ff1ac5df72637e8423ab1467a137c8c6
Author: neis <neis@chromium.org>
Date: Mon Dec 14 15:11:55 2015

[proxies] Support proxies in JSON.parse and JSON.stringify.

This CL tries to correctly support the following:
- stringifying a proxy,
- stringifying with a proxy as replacer (callable or arraylike),
- stringifying with a replacer that returns a proxy,
- parsing with a callable proxy as reviver,
- parsing with a reviver that inserts proxies into the object,
- and whatever else you can imagine.

This also fixes some bugs observable without proxies.

BUG=v8:3139,v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1515133002

Cr-Commit-Position: refs/heads/master@{#32843}

[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/src/bootstrapper.cc
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/src/contexts.h
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/src/js/json.js
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/test/mjsunit/harmony/proxies-json.js
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/test/mjsunit/json.js
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/test/mjsunit/mjsunit.status
[modify] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/test/test262/test262.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0e2ea6a508b18a807a4192e6f578051a773aac87

commit 0e2ea6a508b18a807a4192e6f578051a773aac87
Author: jkummerow <jkummerow@chromium.org>
Date: Mon Dec 14 16:37:02 2015

[proxies] [tests] Un-skip proxies-with-unscopables, delete proxies-symbols

- proxies-with-unscopables needed updating of trap names
- proxies-symbols doesn't make sense any more: it tested symbol fitering/
  blacklisting, but Proxies interact with Symbols just fine according to
  the current spec.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1529473002

Cr-Commit-Position: refs/heads/master@{#32844}

[delete] http://crrev.com/1596b015ff1ac5df72637e8423ab1467a137c8c6/test/mjsunit/harmony/proxies-symbols.js
[modify] http://crrev.com/0e2ea6a508b18a807a4192e6f578051a773aac87/test/mjsunit/harmony/proxies-with-unscopables.js
[modify] http://crrev.com/0e2ea6a508b18a807a4192e6f578051a773aac87/test/mjsunit/mjsunit.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3d8b51e2485b0f104e7b5c60ce5764f1cd4a9f42

commit 3d8b51e2485b0f104e7b5c60ce5764f1cd4a9f42
Author: jkummerow <jkummerow@chromium.org>
Date: Tue Dec 15 17:23:14 2015

[proxies] Check for stack overflow in Proxy internal methods

The proxy may be on its own target's or handler's prototype chain, leading
to infinite recursion either when looking up the trap, or when calling
through to the target.
We can't eagerly prevent this from happening (e.g. at "foo.__proto__ = bar"
calling time) because the presence of traps can change at any time.

BUG=v8:1543,chromium:569882
LOG=n

Review URL: https://codereview.chromium.org/1526953002

Cr-Commit-Position: refs/heads/master@{#32872}

[modify] http://crrev.com/3d8b51e2485b0f104e7b5c60ce5764f1cd4a9f42/src/objects.cc
[add] http://crrev.com/3d8b51e2485b0f104e7b5c60ce5764f1cd4a9f42/test/mjsunit/harmony/proxies-prototype-handler-stackoverflow.js
[add] http://crrev.com/3d8b51e2485b0f104e7b5c60ce5764f1cd4a9f42/test/mjsunit/harmony/proxies-prototype-target-stackoverflow.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/654efd0a4dd33360c4fd385ca744b0766ff0a883

commit 654efd0a4dd33360c4fd385ca744b0766ff0a883
Author: cbruni <cbruni@chromium.org>
Date: Wed Dec 16 11:24:48 2015

[proxies] Implement Proxy.name

LOG=n
BUG=v8:1543

Review URL: https://codereview.chromium.org/1531683002

Cr-Commit-Position: refs/heads/master@{#32891}

[modify] http://crrev.com/654efd0a4dd33360c4fd385ca744b0766ff0a883/src/bootstrapper.cc
[modify] http://crrev.com/654efd0a4dd33360c4fd385ca744b0766ff0a883/src/objects-printer.cc

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/35e5b6824ed16aa3ea230fcd9ec98548e95ba986

commit 35e5b6824ed16aa3ea230fcd9ec98548e95ba986
Author: jkummerow <jkummerow@chromium.org>
Date: Wed Dec 16 11:41:57 2015

[proxies] Fix bogus cast in HasOwnPropertyImplementation

BUG=v8:1543,chromium:570120
LOG=n

Review URL: https://codereview.chromium.org/1530873002

Cr-Commit-Position: refs/heads/master@{#32892}

[modify] http://crrev.com/35e5b6824ed16aa3ea230fcd9ec98548e95ba986/src/runtime/runtime-object.cc
[modify] http://crrev.com/35e5b6824ed16aa3ea230fcd9ec98548e95ba986/test/mjsunit/harmony/proxies-has.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d0ef84b34054f12c66e4cab6e03672d02727b979

commit d0ef84b34054f12c66e4cab6e03672d02727b979
Author: neis <neis@chromium.org>
Date: Wed Dec 16 14:17:16 2015

[proxies] Make Array.prototype.concat work correctly with proxies.

R=rossberg
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1525983002

Cr-Commit-Position: refs/heads/master@{#32900}

[modify] http://crrev.com/d0ef84b34054f12c66e4cab6e03672d02727b979/src/builtins.cc
[modify] http://crrev.com/d0ef84b34054f12c66e4cab6e03672d02727b979/src/js/runtime.js
[modify] http://crrev.com/d0ef84b34054f12c66e4cab6e03672d02727b979/test/mjsunit/harmony/array-concat.js
[modify] http://crrev.com/d0ef84b34054f12c66e4cab6e03672d02727b979/test/mjsunit/harmony/proxies-json.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f723b12336b2ff0ee6a9e6f9a676e4901706ede1

commit f723b12336b2ff0ee6a9e6f9a676e4901706ede1
Author: neis <neis@chromium.org>
Date: Wed Dec 16 14:27:15 2015

[proxies] Recognize arraylike proxies in Object.prototype.toString.

We must print "[object Array]" for proxies that satisfy Array.isArray.

Cosmetic change on the side: move ObjectProtoToString from JSObject to Object
since it deals with arbitrary objects.

R=adamk@chromium.org, verwaest@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1526023002

Cr-Commit-Position: refs/heads/master@{#32902}

[modify] http://crrev.com/f723b12336b2ff0ee6a9e6f9a676e4901706ede1/src/objects.cc
[modify] http://crrev.com/f723b12336b2ff0ee6a9e6f9a676e4901706ede1/src/objects.h
[modify] http://crrev.com/f723b12336b2ff0ee6a9e6f9a676e4901706ede1/test/mjsunit/es6/object-tostring.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0d83aad55725f8c20fe050f06c37ff51ed773e8b

commit 0d83aad55725f8c20fe050f06c37ff51ed773e8b
Author: neis <neis@chromium.org>
Date: Thu Dec 17 09:07:16 2015

[proxies] Correctly handle proxies in Function.prototype.bind

- Before getting the length property, we must check for it
  using [[GetOwnProperty]].  Also, if the obtained length
  is a number, we must properly convert it to an integer.

- In order to get the prototype we must use [[GetPrototypeOf]],
  and do so before checking the length.

R=cbruni@chromium.org, jkummerow@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1530893002

Cr-Commit-Position: refs/heads/master@{#32934}

[modify] http://crrev.com/0d83aad55725f8c20fe050f06c37ff51ed773e8b/src/js/v8natives.js
[modify] http://crrev.com/0d83aad55725f8c20fe050f06c37ff51ed773e8b/src/runtime/runtime-function.cc
[modify] http://crrev.com/0d83aad55725f8c20fe050f06c37ff51ed773e8b/src/runtime/runtime.h
[modify] http://crrev.com/0d83aad55725f8c20fe050f06c37ff51ed773e8b/test/mjsunit/function-bind.js
[add] http://crrev.com/0d83aad55725f8c20fe050f06c37ff51ed773e8b/test/mjsunit/harmony/proxies-bind.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/641cdd30676b4aeee056f4e1b4f0fe923a00e599

commit 641cdd30676b4aeee056f4e1b4f0fe923a00e599
Author: neis <neis@chromium.org>
Date: Thu Dec 17 12:12:02 2015

[proxies] Fix Object.prototype.hasOwnProperty

It must call the 'getOwnPropertyDescriptor' trap, not the 'has' trap.

R=cbruni@chromium.org, jkummerow@chromium.org
BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1532723005

Cr-Commit-Position: refs/heads/master@{#32944}

[modify] http://crrev.com/641cdd30676b4aeee056f4e1b4f0fe923a00e599/src/objects-inl.h
[modify] http://crrev.com/641cdd30676b4aeee056f4e1b4f0fe923a00e599/src/objects.h
[modify] http://crrev.com/641cdd30676b4aeee056f4e1b4f0fe923a00e599/src/runtime/runtime-object.cc
[modify] http://crrev.com/641cdd30676b4aeee056f4e1b4f0fe923a00e599/test/mjsunit/harmony/proxies-has-own-property.js
[modify] http://crrev.com/641cdd30676b4aeee056f4e1b4f0fe923a00e599/test/mjsunit/harmony/proxies.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d30693880c833e1d504e296aeca2260924cf6b1c

commit d30693880c833e1d504e296aeca2260924cf6b1c
Author: jkummerow <jkummerow@chromium.org>
Date: Fri Dec 18 11:11:44 2015

Stage Proxies and Reflect behind --harmony flag

BUG=v8:1543,v8:3931
LOG=y

Review URL: https://codereview.chromium.org/1528423002

Cr-Commit-Position: refs/heads/master@{#32967}

[modify] http://crrev.com/d30693880c833e1d504e296aeca2260924cf6b1c/src/flag-definitions.h
[modify] http://crrev.com/d30693880c833e1d504e296aeca2260924cf6b1c/test/test262/test262.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847

commit 8bfb7189a3472bc9d0820a1bd4534eaaf78ff847
Author: cbruni <cbruni@chromium.org>
Date: Mon Dec 21 12:47:15 2015

[proxies] Better print for proxies in d8

Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1530293004

Cr-Commit-Position: refs/heads/master@{#32985}

[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/d8.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/collection.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/json.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/macros.py
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/messages.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/object-observe.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/proxy.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/js/v8natives.js
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847/src/runtime/runtime.h

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f4cd91c75f967da4f9cb3d368543ef1e77df4965

commit f4cd91c75f967da4f9cb3d368543ef1e77df4965
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 22 08:57:32 2015

Revert of [proxies] Better print for proxies in d8 (patchset #6 id:100001 of https://codereview.chromium.org/1530293004/ )

Reason for revert:
needs --allow-natives-syntax

Original issue's description:
> [proxies] Better print for proxies in d8
>
> Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies.
>
> BUG=v8:1543
> LOG=n
>
> Committed: https://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847
> Cr-Commit-Position: refs/heads/master@{#32985}

TBR=neis@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1543

Review URL: https://codereview.chromium.org/1543803002

Cr-Commit-Position: refs/heads/master@{#33001}

[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/d8.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/collection.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/json.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/macros.py
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/messages.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/object-observe.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/proxy.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/js/v8natives.js
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/f4cd91c75f967da4f9cb3d368543ef1e77df4965/src/runtime/runtime.h

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3

commit b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 22 13:49:23 2015

[proxies] Better print for proxies in d8

Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies.

drive-by-fix: use IS_PROXY if possible in .js files.

BUG=v8:1543
LOG=n

Committed: https://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847
Cr-Commit-Position: refs/heads/master@{#32985}

Review URL: https://codereview.chromium.org/1530293004

Cr-Commit-Position: refs/heads/master@{#33010}

[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/d8.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/collection.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/json.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/macros.py
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/messages.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/object-observe.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/proxy.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/js/v8natives.js
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/runtime/runtime-proxy.cc
[modify] http://crrev.com/b7ff2bd5cdfdd22cbfaa510e1c42e70f4ea1d8a3/src/runtime/runtime.h

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/88b58591aca6b6237442a8c0483cd541f96d41a2

commit 88b58591aca6b6237442a8c0483cd541f96d41a2
Author: cbruni <cbruni@chromium.org>
Date: Tue Dec 22 16:36:47 2015

[proxies] Expose proxies in the API

Add API-accessors for [[ProxyTarget]], [[ProxyHandler]]. Additionally
create new proxies and revoke proxies via the API.

BUG=v8:1543
LOG=n

Review URL: https://codereview.chromium.org/1542943002

Cr-Commit-Position: refs/heads/master@{#33013}

[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/include/v8.h
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/api.cc
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/api.h
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/builtins.cc
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/factory.cc
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/objects-inl.h
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/objects.cc
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/src/objects.h
[modify] http://crrev.com/88b58591aca6b6237442a8c0483cd541f96d41a2/test/cctest/test-api.cc

Cc: adamk@chromium.org littledan@chromium.org
Is there anything blocking moving this to shipping?
As far as I know, there's still the issue with private symbols.  Andreas, can you comment on this?

Thanks.
Do they still leak through any traps? I thought we resigned to "well, just don't leak them outside of internal code" (if I understand Toon in https://codereview.chromium.org/1492923002)
Yes, at least defineProperty, as mentioned in one of the comments
above.  I'm working on this now (and found that the CL introduced two
bugs leading to failing DCHECKs when deleting or setting).
There is no need for so-called private Symbols to be Symbols. They must never become accessible to JS code. If introducing Proxies raises this danger, we're better off without proxies than we are with any significant danger of so-called private Symbols leaking.

Why don't we replace these so-called private Symbols with a distinct data type which cannot be reified and accessed by JS  code?
@erights: Private symbols are not exposed to user-land JS right now, and in the embedder API they _are_ in fact treated as non-values. Even internally, we use some macros that abstract from their nature as a regular value.

They are implemented as symbols internally because that makes their implementation simple, and they immediately benefit from literally hundreds of existing optimisations. A separate mechanism of comparable quality would be 3 orders of magnitude more work and complexity.


The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9ce5162fd2a36daf318e0ec3838cd90f4e179168

commit 9ce5162fd2a36daf318e0ec3838cd90f4e179168
Author: hablich <hablich@chromium.org>
Date: Tue Jan 12 11:50:15 2016

[Proxies] Ship Proxies + Reflect

BUG=v8:3931,v8:1543
LOG=Y
R=verwaest@chromium.org, rossberg@chromium.org

Review URL: https://codereview.chromium.org/1580693002

Cr-Commit-Position: refs/heads/master@{#33234}

[modify] http://crrev.com/9ce5162fd2a36daf318e0ec3838cd90f4e179168/src/flag-definitions.h
[modify] http://crrev.com/9ce5162fd2a36daf318e0ec3838cd90f4e179168/test/mjsunit/mjsunit.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/284010c8b3cf0d73bfdf8ecbf9dede21ce7eb772

commit 284010c8b3cf0d73bfdf8ecbf9dede21ce7eb772
Author: machenbach <machenbach@chromium.org>
Date: Tue Jan 12 13:07:26 2016

Revert of [Proxies] Ship Proxies + Reflect (patchset #2 id:20001 of https://codereview.chromium.org/1580693002/ )

Reason for revert:
[Sheriff] Breaks layout tests. Please fix upstream first.

https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2032/builds/3587
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3873

Original issue's description:
> [Proxies] Ship Proxies + Reflect
>
> BUG=v8:3931,v8:1543
> LOG=Y
> R=verwaest@chromium.org, rossberg@chromium.org
>
> Committed: https://crrev.com/9ce5162fd2a36daf318e0ec3838cd90f4e179168
> Cr-Commit-Position: refs/heads/master@{#33234}

TBR=rossberg@chromium.org,verwaest@chromium.org,hablich@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3931,v8:1543

Review URL: https://codereview.chromium.org/1579573004

Cr-Commit-Position: refs/heads/master@{#33236}

[modify] http://crrev.com/284010c8b3cf0d73bfdf8ecbf9dede21ce7eb772/src/flag-definitions.h
[modify] http://crrev.com/284010c8b3cf0d73bfdf8ecbf9dede21ce7eb772/test/mjsunit/mjsunit.status

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/863bf39a5f957816fbde9a95d89cdd0a8c662072

commit 863bf39a5f957816fbde9a95d89cdd0a8c662072
Author: neis <neis@chromium.org>
Date: Tue Jan 12 14:56:18 2016

Gracefully handle proxies in AllCanWrite().

R=verwaest@chromium.org
BUG=chromium:576662,v8:1543
LOG=y

Review URL: https://codereview.chromium.org/1580723003

Cr-Commit-Position: refs/heads/master@{#33240}

[modify] http://crrev.com/863bf39a5f957816fbde9a95d89cdd0a8c662072/src/objects.cc
[add] http://crrev.com/863bf39a5f957816fbde9a95d89cdd0a8c662072/test/mjsunit/harmony/regress/regress-576662.js

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/96ec06efb0fa73bb3cc74d95bb3f1ebea83233de

commit 96ec06efb0fa73bb3cc74d95bb3f1ebea83233de
Author: neis <neis@chromium.org>
Date: Tue Jan 12 17:19:45 2016

Reland of "[Proxies] Ship Proxies + Reflect."

Failing chromium layout tests were marked for rebaselining.

Addition to original CL (https://codereview.chromium.org/1580693002/):
Skip some more ignition tests.

BUG=v8:3931,v8:1543
LOG=Y
R=hablich@chromium.org
CC=verwaest@chromium.org, rossberg@chromium.org,rmcilroy, oth

Review URL: https://codereview.chromium.org/1580783002

Cr-Commit-Position: refs/heads/master@{#33244}

[modify] http://crrev.com/96ec06efb0fa73bb3cc74d95bb3f1ebea83233de/src/flag-definitions.h
[modify] http://crrev.com/96ec06efb0fa73bb3cc74d95bb3f1ebea83233de/test/cctest/cctest.status
[modify] http://crrev.com/96ec06efb0fa73bb3cc74d95bb3f1ebea83233de/test/mjsunit/mjsunit.status

Is there anything blocking moving this to shipping?
Status: Fixed
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/07d05dddceab37f4da8d382e3fe60e90e02b99e5

commit 07d05dddceab37f4da8d382e3fe60e90e02b99e5
Author: cbruni <cbruni@chromium.org>
Date: Thu Feb 04 17:54:55 2016

[proxies] allow duplicate keys for [[OwnPropertyKeys]] trap.

BUG=v8:4724, v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1668853002

Cr-Commit-Position: refs/heads/master@{#33747}

[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/api.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/builtins.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/debug/debug-scopes.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/debug/debug-scopes.h
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/json-stringifier.h
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/key-accumulator.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/key-accumulator.h
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/objects.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/objects.h
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/runtime/runtime-array.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/runtime/runtime-forin.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/src/runtime/runtime-object.cc
[modify] http://crrev.com/07d05dddceab37f4da8d382e3fe60e90e02b99e5/test/mjsunit/harmony/proxies-ownkeys.js

Project Member Comment 137 by bugdroid1@chromium.org, Mar 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611

commit 18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611
Author: caitpotter88 <caitpotter88@gmail.com>
Date: Thu Mar 03 15:22:51 2016

[proxies] throw TypeError if is_callable Map bit is unset

Per ProxyCreate() (https://tc39.github.io/ecma262/#sec-proxycreate), a Proxy
is only given a [[Call]] slot if the target has a [[Call]] slot as well. This
was previously implemented correctly for [[Construct]], but not for [[Call]].

BUG=v8:4797, v8:4796, v8:1543
LOG=N
R=cbruni@chromium.org, neis@chromium.org, adamk@chromium.org, littledan@chromium.org

Review URL: https://codereview.chromium.org/1752133004

Cr-Commit-Position: refs/heads/master@{#34461}

[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/arm/builtins-arm.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/arm64/builtins-arm64.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/ia32/builtins-ia32.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/mips/builtins-mips.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/mips64/builtins-mips64.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/src/x64/builtins-x64.cc
[modify] https://crrev.com/18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611/test/mjsunit/harmony/proxies-apply.js

Project Member Comment 138 by bugdroid1@chromium.org, Mar 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/392435bc1458978c28a86f448a7b1eb6717a9ff1

commit 392435bc1458978c28a86f448a7b1eb6717a9ff1
Author: mbrandy <mbrandy@us.ibm.com>
Date: Thu Mar 03 18:12:01 2016

PPC: [proxies] throw TypeError if is_callable Map bit is unset

Port 18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611

Original commit message:
    Per ProxyCreate() (https://tc39.github.io/ecma262/#sec-proxycreate), a Proxy
    is only given a [[Call]] slot if the target has a [[Call]] slot as well. This
    was previously implemented correctly for [[Construct]], but not for [[Call]].

R=caitpotter88@gmail.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4797, v8:4796, v8:1543
LOG=N

Review URL: https://codereview.chromium.org/1758283002

Cr-Commit-Position: refs/heads/master@{#34465}

[modify] https://crrev.com/392435bc1458978c28a86f448a7b1eb6717a9ff1/src/ppc/builtins-ppc.cc

Blockedon: -chromium:507282 chromium:507282
Hey so, would it make sense to merge the `is_callable` fixes for 4.9 and 5.0? it looks like these have been shipping for a while
Comment 140 Deleted
sorry about the accidental "Blockedon" change --- I didn't edit the form field in any way, and am not sure what happened ._.
One day is not 'shipping for a while'. What do you mean?
Proxies have been shipped for a while with this bug.
Do we want to backmerge it (even though in native code, I think the fix is pretty simple)?
I think we definitely want to merge this to 5.0 (once we have Canary coverage). 4.9 seems riskier.
Project Member Comment 145 by bugdroid1@chromium.org, Mar 8 2016
Labels: merge-merged-5.0
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25

commit fb3e637ccaf5d48cfec43ad73f8b546f4b196a25
Author: Adam Klein <adamk@chromium.org>
Date: Tue Mar 08 19:40:28 2016

Version 5.0.71.10 (cherry-pick)

Merged 18b9c1ce705e5fe38c23bdd19fcbbfbe3121c611
Merged 392435bc1458978c28a86f448a7b1eb6717a9ff1

[proxies] throw TypeError if is_callable Map bit is unset

PPC: [proxies] throw TypeError if is_callable Map bit is unset

BUG=v8:1543,v8:4796,v8:4797
LOG=N
TBR=hablich@chromium.org

Review URL: https://codereview.chromium.org/1774113003 .

Cr-Commit-Position: refs/branch-heads/5.0@{#15}
Cr-Branched-From: ad16e6c2cbd2c6b0f2e8ff944ac245561c682ac2-refs/heads/5.0.71@{#1}
Cr-Branched-From: bd9df50d75125ee2ad37b3d92c8f50f0a8b5f030-refs/heads/master@{#34215}

[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/include/v8-version.h
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/arm/builtins-arm.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/arm64/builtins-arm64.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/ia32/builtins-ia32.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/mips/builtins-mips.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/mips64/builtins-mips64.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/ppc/builtins-ppc.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/src/x64/builtins-x64.cc
[modify] https://crrev.com/fb3e637ccaf5d48cfec43ad73f8b546f4b196a25/test/mjsunit/harmony/proxies-apply.js

Project Member Comment 146 by bugdroid1@chromium.org, Mar 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/76ea63ba64f4510b871c436542046ad30f94226d

commit 76ea63ba64f4510b871c436542046ad30f94226d
Author: zhengxing.li <zhengxing.li@intel.com>
Date: Wed Mar 09 09:38:28 2016

Version 5.0.71.11 (cherry-pick)

Merged 1736ad786ff96212fe452acb793b9543ca154da6

X87: [proxies] throw TypeError if is_callable Map bit is unset.

R=hablich@chromium.org
BUG=v8:1543,v8:4796,v8:4797
LOG=N
NOTRY=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1777853002

Cr-Commit-Position: refs/branch-heads/5.0@{#17}
Cr-Branched-From: ad16e6c2cbd2c6b0f2e8ff944ac245561c682ac2-refs/heads/5.0.71@{#1}
Cr-Branched-From: bd9df50d75125ee2ad37b3d92c8f50f0a8b5f030-refs/heads/master@{#34215}

[modify] https://crrev.com/76ea63ba64f4510b871c436542046ad30f94226d/src/x87/builtins-x87.cc

Project Member Comment 147 by bugdroid1@chromium.org, Mar 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2efc1381313248352630b05f6d48064badfe7671

commit 2efc1381313248352630b05f6d48064badfe7671
Author: cbruni <cbruni@chromium.org>
Date: Wed Mar 23 08:26:35 2016

[proxies] use [[GetPrototypeOf]] trap in for-in key accumulation

With the recent spec change removing the [[Enumerate]] internal method, we now
have to walk the complete prototype chain. This implies that we call the
[[GetPrototypeOf]] trap on proxies.

As a secondary change we now trigger the [[GetOwnProperty]] trap for the for-in
filter step to see whether the properties are still enumerable. Before we did this
in the key-accumulation phase. This way we slightly reduce the number of traps
invoked. Whilst this is not ideal, it comes closer to the Spec's example
implementation.

BUG=v8:1543, v8:4768
LOG=n

Review URL: https://codereview.chromium.org/1748923003

Cr-Commit-Position: refs/heads/master@{#35017}

[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/keys.cc
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/keys.h
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/objects-inl.h
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/objects.cc
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/objects.h
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/prototype.h
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/src/runtime/runtime-forin.cc
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/test/mjsunit/es6/proxies-for.js
[modify] https://crrev.com/2efc1381313248352630b05f6d48064badfe7671/test/mjsunit/for-in-opt.js

Blocking: chromium:399951
Project Member Comment 149 by bugdroid1@chromium.org, Jul 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/08d0012dda22306eee124b62a3de9829f3961ba8

commit 08d0012dda22306eee124b62a3de9829f3961ba8
Author: caitp <caitp@igalia.com>
Date: Mon Jul 11 10:38:33 2016

[keys] propagate PropertyFilter to proxy targets in KeyAccumulator

BUG=v8:5174, v8:1543
R=cbruni@chromium.org, littledan@chromium.org

Review-Url: https://codereview.chromium.org/2129193003
Cr-Commit-Position: refs/heads/master@{#37634}

[modify] https://crrev.com/08d0012dda22306eee124b62a3de9829f3961ba8/src/keys.cc
[modify] https://crrev.com/08d0012dda22306eee124b62a3de9829f3961ba8/src/objects.cc
[modify] https://crrev.com/08d0012dda22306eee124b62a3de9829f3961ba8/test/mjsunit/es6/proxies-keys.js
[add] https://crrev.com/08d0012dda22306eee124b62a3de9829f3961ba8/test/mjsunit/regress/regress-5174.js

Project Member Comment 150 by bugdroid1@chromium.org, Jul 20 2016
Labels: merge-merged-5.2
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189

commit 6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189
Author: Adam Klein <adamk@chromium.org>
Date: Wed Jul 20 19:05:35 2016

Version 5.2.361.44 (cherry-pick)

Merged 08d0012dda22306eee124b62a3de9829f3961ba8

[keys] propagate PropertyFilter to proxy targets in KeyAccumulator

BUG=v8:1543,v8:5174
LOG=N
R=littledan@chromium.org

Review URL: https://codereview.chromium.org/2167783002 .

Cr-Commit-Position: refs/branch-heads/5.2@{#50}
Cr-Branched-From: 2cd36d6d0439ddfbe84cd90e112dced85084ec95-refs/heads/5.2.361@{#1}
Cr-Branched-From: 3fef34e02388e07d46067c516320f1ff12304c8e-refs/heads/master@{#36332}

[modify] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/include/v8-version.h
[modify] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/src/keys.cc
[modify] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/src/objects.cc
[modify] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/test/mjsunit/es6/proxies-keys.js
[add] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/test/mjsunit/regress/regress-5174.js

Project Member Comment 151 by bugdroid1@chromium.org, Jul 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d594610133f9059dc89269e6a41b2bd2cb0aa4ec

commit d594610133f9059dc89269e6a41b2bd2cb0aa4ec
Author: Adam Klein <adamk@chromium.org>
Date: Wed Jul 20 19:26:30 2016

Revert "Version 5.2.361.44 (cherry-pick)"

Merge fails to build.

This reverts commit 6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189.

BUG=v8:1543, v8:5174
TBR=littledan@chromium.org

Review URL: https://codereview.chromium.org/2169593002 .

Cr-Commit-Position: refs/branch-heads/5.2@{#51}
Cr-Branched-From: 2cd36d6d0439ddfbe84cd90e112dced85084ec95-refs/heads/5.2.361@{#1}
Cr-Branched-From: 3fef34e02388e07d46067c516320f1ff12304c8e-refs/heads/master@{#36332}

[modify] https://crrev.com/d594610133f9059dc89269e6a41b2bd2cb0aa4ec/include/v8-version.h
[modify] https://crrev.com/d594610133f9059dc89269e6a41b2bd2cb0aa4ec/src/keys.cc
[modify] https://crrev.com/d594610133f9059dc89269e6a41b2bd2cb0aa4ec/src/objects.cc
[modify] https://crrev.com/d594610133f9059dc89269e6a41b2bd2cb0aa4ec/test/mjsunit/es6/proxies-keys.js
[delete] https://crrev.com/6d5bfa44ecfc0bf24ef5db9c3d4ee1e3ab094189/test/mjsunit/regress/regress-5174.js

Project Member Comment 152 by bugdroid1@chromium.org, Jul 20 2016
Labels: merge-merged-5.3
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/740ffa767e29531fe0695880771cee66bf9515d4

commit 740ffa767e29531fe0695880771cee66bf9515d4
Author: Adam Klein <adamk@chromium.org>
Date: Wed Jul 20 23:46:15 2016

Version 5.3.332.20 (cherry-pick)

Merged 08d0012dda22306eee124b62a3de9829f3961ba8

[keys] propagate PropertyFilter to proxy targets in KeyAccumulator

BUG=v8:1543,v8:5174
LOG=N
R=littledan@chromium.org

Review URL: https://codereview.chromium.org/2168683002 .

Cr-Commit-Position: refs/branch-heads/5.3@{#24}
Cr-Branched-From: 820a23aade5e74a92d794e05a0c2b3597f0da4b5-refs/heads/5.3.332@{#2}
Cr-Branched-From: 37538cb2c1b4d75c41af386cb4fedbe5566f5608-refs/heads/master@{#37308}

[modify] https://crrev.com/740ffa767e29531fe0695880771cee66bf9515d4/include/v8-version.h
[modify] https://crrev.com/740ffa767e29531fe0695880771cee66bf9515d4/src/keys.cc
[modify] https://crrev.com/740ffa767e29531fe0695880771cee66bf9515d4/src/objects.cc
[modify] https://crrev.com/740ffa767e29531fe0695880771cee66bf9515d4/test/mjsunit/es6/proxies-keys.js
[add] https://crrev.com/740ffa767e29531fe0695880771cee66bf9515d4/test/mjsunit/regress/regress-5174.js

Project Member Comment 153 by bugdroid1@chromium.org, Aug 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f4f06c50298b275b531e510f7521df48778c2b0a

commit f4f06c50298b275b531e510f7521df48778c2b0a
Author: cbruni <cbruni@chromium.org>
Date: Mon Aug 01 10:08:54 2016

[keys] Trigger [[getOwnPropertyDescriptor]] trap on proxies for Object.keys

This CL fixes a long-standing bug with Object.keys where the enumerability
check was omitted if the [ownKeys] trap is not present. The only distinction the
KeyAccumulator needs is whether it collects keys for for-in (is_for_in_) or not.
ForInFilter performs a separate step to filter out non-enumerable keys later-on
while in all the other use-cases we have to filter keys.

BUG=v8:1543, v8:5250

Review-Url: https://codereview.chromium.org/2176113009
Cr-Commit-Position: refs/heads/master@{#38199}

[modify] https://crrev.com/f4f06c50298b275b531e510f7521df48778c2b0a/src/keys.cc
[modify] https://crrev.com/f4f06c50298b275b531e510f7521df48778c2b0a/src/keys.h
[modify] https://crrev.com/f4f06c50298b275b531e510f7521df48778c2b0a/src/runtime/runtime-forin.cc
[modify] https://crrev.com/f4f06c50298b275b531e510f7521df48778c2b0a/test/mjsunit/es6/proxies-keys.js

Labels: NodeJS-Backport-Rejected
Labels: Priority-2
Sign in to add a comment