- 21 Oct, 2016 3 commits
-
-
jgruber authored
These map checks were implemented for TF code already. This CL makes sure that parts implemented in C++ follow the same logic, which is: An object is an unmodified regexp if: 1) it's a receiver, 2) its map is the initial regexp map, 3) its prototype is a receiver, 4) and its prototype's map is the initial prototype's initial map. We can now be smarter in @@replace and @@split since checking maps (unlike the previous check of RegExp.prototype.exec) is not observable, so we can perform fast-path checks at a time of our choosing. BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2434983002 Cr-Commit-Position: refs/heads/master@{#40501}
-
machenbach authored
Revert of [regexp] Use consistent map checks for fast paths (patchset #7 id:120001 of https://chromiumcodereview.appspot.com/2434983002/ ) Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10853 Original issue's description: > [regexp] Use consistent map checks for fast paths > > These map checks were implemented for TF code already. This CL makes > sure that parts implemented in C++ follow the same logic, which is: > > An object is an unmodified regexp if: > 1) it's a receiver, > 2) its map is the initial regexp map, > 3) its prototype is a receiver, > 4) and its prototype's map is the initial prototype's initial map. > > We can now be smarter in @@replace and @@split since checking maps > (unlike the previous check of RegExp.prototype.exec) is not observable, > so we can perform fast-path checks at a time of our choosing. > > BUG=v8:5339,v8:5434,v8:5123 TBR=yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2438283002 Cr-Commit-Position: refs/heads/master@{#40499}
-
jgruber authored
These map checks were implemented for TF code already. This CL makes sure that parts implemented in C++ follow the same logic, which is: An object is an unmodified regexp if: 1) it's a receiver, 2) its map is the initial regexp map, 3) its prototype is a receiver, 4) and its prototype's map is the initial prototype's initial map. We can now be smarter in @@replace and @@split since checking maps (unlike the previous check of RegExp.prototype.exec) is not observable, so we can perform fast-path checks at a time of our choosing. BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2434983002 Cr-Commit-Position: refs/heads/master@{#40495}
-
- 24 Jun, 2016 1 commit
-
-
adamk authored
Flags removed (all begin with "harmony-"): function-name instanceof iterator-close unicode-regexps regexp-exec regexp-subclass species BUG=v8:3566, v8:3648, v8:3699, v8:4093, v8:4447, v8:4602 Review-Url: https://codereview.chromium.org/2096933002 Cr-Commit-Position: refs/heads/master@{#37235}
-
- 05 Apr, 2016 1 commit
-
-
adamk authored
The Chrome Extensions code that was broken by this change the first time it landed has been amended to deal appropriately with the ES2015 semantics in https://codereview.chromium.org/1864733002/. BUG=v8:4602 LOG=y Review URL: https://codereview.chromium.org/1857313003 Cr-Commit-Position: refs/heads/master@{#35279}
-
- 04 Apr, 2016 1 commit
-
-
littledan authored
- RegExp.prototype.toString() doesn't have any special handling of RegExp instances and simply calls the source and flags getters - Use the original values of global and sticky, rather than based on the current flag getters, as specified in https://github.com/tc39/ecma262/pull/494 R=yangguo@chromium.org,adamk LOG=Y BUG=v8:4602 Review URL: https://codereview.chromium.org/1846303002 Cr-Commit-Position: refs/heads/master@{#35225}
-
- 01 Apr, 2016 3 commits
-
-
hablich authored
Revert of Ship --harmony-regexp-exec (patchset #3 id:40001 of https://codereview.chromium.org/1847103002/ ) Reason for revert: breaks some chromium browser_tests: https://codereview.chromium.org/1848233002/ Original issue's description: > Ship --harmony-regexp-exec > > There are still spec compliance fixes to be made, but this patch > turns the flag to shipping to make sure we get more canary coverage > and performance data from the bots. > > BUG=v8:4602 > LOG=y > > Committed: https://crrev.com/84492bb66b340f4e0df36758e98fddbb10b5d1dc > Cr-Commit-Position: refs/heads/master@{#35181} TBR=littledan@chromium.org,adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4602 Review URL: https://codereview.chromium.org/1852673003 Cr-Commit-Position: refs/heads/master@{#35198}
-
adamk authored
There are still spec compliance fixes to be made, but this patch turns the flag to shipping to make sure we get more canary coverage and performance data from the bots. BUG=v8:4602 LOG=y Review URL: https://codereview.chromium.org/1847103002 Cr-Commit-Position: refs/heads/master@{#35181}
-
littledan authored
Revert of Remove RegExp.prototype.source getter compat workaround (patchset #2 id:20001 of https://codereview.chromium.org/1837843002/ ) Reason for revert: TC39 decided that this compatibility fix should be standardized. Original issue's description: > Remove RegExp.prototype.source getter compat workaround > > The getter RegExp.prototype.source is specified in ES2015 to throw when > called on a non-RegExp instance, such as RegExp.prototype. We had previously > put in a compatibility workaround for all RegExp getters to make them > throw on access specifically with RegExp.prototype as the receiver; however, > we only have evidence that this is needed for properties other than source. > This patch removes the compatibility workaround for get RegExp.prototype.source > and gives it semantics precisely as per the ES2015 specification. > > R=adamk > BUG=chromium:581577,v8:4827 > LOG=Y > > Committed: https://crrev.com/80803aa89e31839b8f73959776fa7e1923c6b461 > Cr-Commit-Position: refs/heads/master@{#35086} R=adamk@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:581577,v8:4827 LOG=Y Review URL: https://codereview.chromium.org/1847783003 Cr-Commit-Position: refs/heads/master@{#35180}
-
- 28 Mar, 2016 1 commit
-
-
littledan authored
The getter RegExp.prototype.source is specified in ES2015 to throw when called on a non-RegExp instance, such as RegExp.prototype. We had previously put in a compatibility workaround for all RegExp getters to make them throw on access specifically with RegExp.prototype as the receiver; however, we only have evidence that this is needed for properties other than source. This patch removes the compatibility workaround for get RegExp.prototype.source and gives it semantics precisely as per the ES2015 specification. R=adamk BUG=chromium:581577,v8:4827 LOG=Y Review URL: https://codereview.chromium.org/1837843002 Cr-Commit-Position: refs/heads/master@{#35086}
-
- 25 Mar, 2016 1 commit
-
-
adamk authored
It's been on since M49. Also moved tests from harmony -> es6, one of which was merged with another test of the same name. While moving stuff over to regexp.js, I also noticed that there were unused calls to %FunctionSetName and %SetNativeFlag (those calls are already handled by InstallGetter()). Review URL: https://codereview.chromium.org/1838563003 Cr-Commit-Position: refs/heads/master@{#35076}
-
- 23 Feb, 2016 1 commit
-
-
littledan authored
It turns out that some old polyfill library uses RegExp.prototype.flags as a way of feature testing. It's not clear how widespread this is. For now, as a minimal workaround, we can return undefined from getters like RegExp.prototype.global when the receiver is RegExp.prototype. This patch implements that strategy but omits a UseCounter to make backports easier. R=adamk CC=yangguo@chromium.org BUG=chromium:581577 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1640803003 Cr-Commit-Position: refs/heads/master@{#34201}
-
- 22 Dec, 2015 3 commits
-
-
littledan authored
Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ ) Unexpectedly, websites depend on doing feature testing with RegExp.prototype.sticky and browser testing with RegExp.prototype.toString(). ES2015 newly throws exceptions for both of these. In order to enable shipping new ES2015 semantics, this patch puts in narrow workarounds for those two cases, keeping their old behavior. UseCounters are added for how often those particular cases come up, so we can see if it can be deprecated. This reland replaces problematic legacy const usage with var, to avoid issues with nosnap builds. R=yangguo CC=bmeurer BUG=v8:4637,v8:4617 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1545633002 Cr-Commit-Position: refs/heads/master@{#33002}
-
bmeurer authored
Revert of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ ) Reason for revert: Breaks nosnap: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5883 Original issue's description: > Add web compat workarounds for ES2015 RegExp semantics > > Unexpectedly, websites depend on doing feature testing with > RegExp.prototype.sticky and browser testing with RegExp.prototype.toString(). > ES2015 newly throws exceptions for both of these. In order to enable shipping > new ES2015 semantics, this patch puts in narrow workarounds for those two > cases, keeping their old behavior. UseCounters are added for how often > those particular cases come up, so we can see if it can be deprecated. > > R=yangguo > BUG=v8:4637,v8:4617 > LOG=Y > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/98f819c3e0c92d54a306cdacadda73cf96d21b52 > Cr-Commit-Position: refs/heads/master@{#32997} TBR=yangguo@google.com,yangguo@chromium.org,littledan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4637,v8:4617 Review URL: https://codereview.chromium.org/1546493003 Cr-Commit-Position: refs/heads/master@{#32999}
-
littledan authored
Unexpectedly, websites depend on doing feature testing with RegExp.prototype.sticky and browser testing with RegExp.prototype.toString(). ES2015 newly throws exceptions for both of these. In order to enable shipping new ES2015 semantics, this patch puts in narrow workarounds for those two cases, keeping their old behavior. UseCounters are added for how often those particular cases come up, so we can see if it can be deprecated. R=yangguo BUG=v8:4637,v8:4617 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1543723002 Cr-Commit-Position: refs/heads/master@{#32997}
-
- 10 Nov, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1416093006 Cr-Commit-Position: refs/heads/master@{#31910}
-
- 05 Nov, 2015 2 commits
-
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 Cr-Commit-Position: refs/heads/master@{#31782} Committed: https://crrev.com/152163c1646b45f5fc5d31a4ec2eb55d7f4a2ffc Cr-Commit-Position: refs/heads/master@{#31804} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31824}
-
yangguo authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #6 id:110001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: browser_tests failure with --gtest_filter=ExternallyConnectableMessagingTest.EnablingAndDisabling Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} > > Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 > Cr-Commit-Position: refs/heads/master@{#31782} > > Committed: https://crrev.com/152163c1646b45f5fc5d31a4ec2eb55d7f4a2ffc > Cr-Commit-Position: refs/heads/master@{#31804} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1426413002 Cr-Commit-Position: refs/heads/master@{#31818}
-
- 04 Nov, 2015 5 commits
-
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 Cr-Commit-Position: refs/heads/master@{#31782} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31804}
-
hablich authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #6 id:110001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: Breaks Chromium tests and blocks the roll: http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/124490 Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} > > Committed: https://crrev.com/85494e90bb63a3a9e19a1bf862cb6bfcb0162ee9 > Cr-Commit-Position: refs/heads/master@{#31782} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1432683002 Cr-Commit-Position: refs/heads/master@{#31801}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 Cr-Commit-Position: refs/heads/master@{#31773} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31782}
-
yangguo authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #3 id:50001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: Performance issue. Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} > > Committed: https://crrev.com/b5c80a31ad266eb38a0cf2ff756be59c66d34aa5 > Cr-Commit-Position: refs/heads/master@{#31773} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1409013006 Cr-Commit-Position: refs/heads/master@{#31780}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 Cr-Commit-Position: refs/heads/master@{#31753} Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31773}
-
- 03 Nov, 2015 2 commits
-
-
machenbach authored
Revert of Implement flag and source getters on RegExp.prototype. (patchset #3 id:50001 of https://codereview.chromium.org/1419823010/ ) Reason for revert: [Sheriff] Changes layout tests. Please rebase upstream first. E.g.: http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/2686 Original issue's description: > Implement flag and source getters on RegExp.prototype. > > R=littledan@chromium.org > BUG=v8:3715, v8:4528 > LOG=Y > > Committed: https://crrev.com/60e8877e161fe6175e19fafce2d6ed1c3999cdb1 > Cr-Commit-Position: refs/heads/master@{#31753} TBR=littledan@chromium.org,jochen@chromium.org,ulan@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3715, v8:4528 Review URL: https://codereview.chromium.org/1427733005 Cr-Commit-Position: refs/heads/master@{#31758}
-
yangguo authored
R=littledan@chromium.org BUG=v8:3715, v8:4528 LOG=Y Review URL: https://codereview.chromium.org/1419823010 Cr-Commit-Position: refs/heads/master@{#31753}
-