- 19 Feb, 2016 1 commit
-
-
mvstanton authored
This is a rework of the instanceof operator to support ES6 semantics (as per section 12.10.4 of the spec: https://tc39.github.io/ecma262/#sec-instanceofoperator). It's behind flag --harmony-instanceof for now, which is turned on for staging. BUG=v8:4447 LOG=N Review URL: https://codereview.chromium.org/1692713005 Cr-Commit-Position: refs/heads/master@{#34170}
-
- 18 Feb, 2016 4 commits
-
-
verwaest authored
Revert of Use displayName in Error.stack rendering if present. (patchset #1 id:1 of https://codereview.chromium.org/1706823003/ ) Reason for revert: See Domenic's comment on the V8 bug. Original issue's description: > Use displayName in Error.stack rendering if present. > > BUG=v8:4761 > LOG=y > > Committed: https://crrev.com/953874e974037e7e96ef282a7078760ccc905878 > Cr-Commit-Position: refs/heads/master@{#34105} TBR=jochen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4761 Review URL: https://codereview.chromium.org/1713663002 Cr-Commit-Position: refs/heads/master@{#34129}
-
adamk authored
This frees up one bit in FunctionKind, which I plan to make slightly more syntactic info about functions available in SharedFunctionInfo (needed for ES2015 Function.name support). BUG=v8:3956, v8:4760 LOG=n Review URL: https://codereview.chromium.org/1704223002 Cr-Commit-Position: refs/heads/master@{#34125}
-
rossberg authored
Implements iterator finalisation by desugaring for-of loops with an additional try-finally wrapper. See comment in parser.cc for details. Also improved some AST printing facilities while there. @Ross, I had to disable the bytecode generation test for for-of, because it got completely out of hand after this change (the new bytecode has 150+ lines). See the TODO that I assigned to you. Patch set 1 is WIP patch by Georg (http://crrev.com/1695583003), patch set 2 relative changes. @Georg, FYI, I changed the following: - Moved try-finally out of the loop body, for performance, and in order to be able to handle `continue` correctly. - Fixed scope management in ParseForStatement, which was the cause for the variable allocation failure. - Fixed pre-existing zone initialisation bug in rewriter, which caused the crashes. - Enabled all tests, adjusted a few others, added a couple more. BUG=v8:2214 LOG=Y Review URL: https://codereview.chromium.org/1695393003 Cr-Commit-Position: refs/heads/master@{#34111}
-
verwaest authored
BUG=v8:4761 LOG=y Review URL: https://codereview.chromium.org/1706823003 Cr-Commit-Position: refs/heads/master@{#34105}
-
- 16 Feb, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4756 LOG=N R=adamk@chromium.org, littledan@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1700123003 Cr-Commit-Position: refs/heads/master@{#34050}
-
- 10 Feb, 2016 1 commit
-
-
yangguo authored
R=jochen@chromium.org, verwaest@chromium.org BUG=chromium:585724 LOG=N Review URL: https://codereview.chromium.org/1681513002 Cr-Commit-Position: refs/heads/master@{#33864}
-
- 04 Feb, 2016 2 commits
-
-
adamk authored
Review URL: https://codereview.chromium.org/1663773003 Cr-Commit-Position: refs/heads/master@{#33748}
-
neis authored
This CL deals with yield* by desugaring it in the parser. Hence the full-codegen implementation of it becomes obsolete and can be removed in a future CL. The only change in semantics should be that the results of the iterator's next and throw methods are checked to be objects, which didn't happen before but is required by the spec. BUG= Review URL: https://codereview.chromium.org/1643903003 Cr-Commit-Position: refs/heads/master@{#33735}
-
- 02 Feb, 2016 2 commits
-
-
jarin authored
This CL removes the Config templatization from the types. It is not necessary anymore, after the HeapTypes have been removed. The CL also changes the type hierarchy - the specific type kinds are not inner classes of the Type class and they do not inherit from Type. This is partly because it seems impossible to make this work without templates. Instead, a new TypeBase class is introduced and all the structural (i.e., non-bitset) types inherit from it. The bitset type still requires the bit-munging hack and some nasty reinterpret-casts to pretend bitsets are of type Type*. Additionally, there is now the same hack for TypeBase - all pointers to the sub-types of TypeBase are reinterpret-casted to Type*. This is to keep the type constructors in inline method definitions (although it is unclear how much that actually buys us). In future, we would like to move to a model where we encapsulate Type* into a class (or possibly use Type where we used to use Type*). This would loosen the coupling between bitset size and pointer size, and eventually we would be able to have more bits. TBR=bradnelson@chromium.org Review URL: https://codereview.chromium.org/1655833002 Cr-Commit-Position: refs/heads/master@{#33656}
-
caitpotter88 authored
Based on vogelheim's CL at https://codereview.chromium.org/1657783002/ BUG=chromium:582626, v8:2700 LOG=N R=adamk@chromium.org, rossberg@chromium.org, vogelheim@chromium.org Review URL: https://codereview.chromium.org/1656993002 Cr-Commit-Position: refs/heads/master@{#33651}
-
- 28 Jan, 2016 1 commit
-
-
neis authored
The body of a generator function can now refer to the generator's input value via a new "function.sent" expression. We extend the proposal at https://github.com/allenwb/ESideas/blob/master/Generator%20metaproperty.md in the obvious way to also apply to GeneratorResumeAbrupt. This will enable us to desugar yield*. The new syntax is behind a new --harmony-function-sent flag. BUG=v8:4700 LOG=n Review URL: https://codereview.chromium.org/1620253003 Cr-Commit-Position: refs/heads/master@{#33574}
-
- 12 Jan, 2016 1 commit
-
-
littledan authored
This patch improves ArrayBuffer and TypedArray subclassing by adding support for @@species and constructing outputs to certain methods by creating an instance of the constructor determined by the SpeciesConstructor algorithm, rather than fixed to a superclass or naively the constructor. The new behavior is enabled by the --harmony-species flag. Care is taken to not significantly change the observable behavior when the flag is off. Previously, TypedArrays already supported subclassing by reading the constructor of the receiver, but ArrayBuffers did not, and this old behavior is preserved and tested for, to avoid a multi-stage upgrade path and keep things simple for users. R=adamk BUG=v8:4093 LOG=Y Review URL: https://codereview.chromium.org/1574903004 Cr-Commit-Position: refs/heads/master@{#33223}
-
- 11 Jan, 2016 1 commit
-
-
neis authored
R=rossberg BUG= Review URL: https://codereview.chromium.org/1573143002 Cr-Commit-Position: refs/heads/master@{#33212}
-
- 07 Jan, 2016 1 commit
-
-
littledan authored
This patch implements @@species, guarded behind the --harmony-species flag, on Arrays. Methods which return an Array will instead return the appropriate instance based on the ArraySpeciesCreate algorithm. The algorithm is implemented in C++ to get access to realm information and to implement some Array methods in C++, but it is also accessed from JavaScript through a new runtime function. A couple interactive Octane runs show no performance regression with the flag turned off, but turning --harmony-species on will surely have a significant regression, as Array methods now heavily use ObjectDefineProperty. BUG=v8:4093 LOG=Y R=adamk,cbruni Review URL: https://codereview.chromium.org/1560763002 Cr-Commit-Position: refs/heads/master@{#33144}
-
- 05 Jan, 2016 1 commit
-
-
caitpotter88 authored
Correctly validate promise capabilities in NewPromiseCapabilities() and in GetCapabilitiesExtractor(). Also explicitly follows Promise.race step 2 and similar cases in the spec, rather than passing tests asserting these steps are taken in NewPromiseCapability Also changes Promise.reject to match specification. Fixes the following test262 tests: - built-ins/Promise/all/capability-executor-called-twice.js - built-ins/Promise/all/capability-executor-not-callable.js - built-ins/Promise/prototype/then/capability-executor-called-twice.js - built-ins/Promise/prototype/then/capability-executor-not-callable.js - built-ins/Promise/reject/capability-executor-called-twice.js - built-ins/Promise/reject/capability-executor-not-callable.js - built-ins/Promise/resolve/capability-executor-called-twice.js - built-ins/Promise/resolve/capability-executor-not-callable.js - built-ins/Promise/race/capability-executor-called-twice.js - built-ins/Promise/race/capability-executor-not-callable.js - built-ins/Promise/reject/S25.4.4.4_A3.1_T1.js - built-ins/Promise/race/S25.4.4.3_A3.1_T2.js Per v8:3641, mjsunit/es6/debug-promises/throw-with-undefined-reject.js becomes invalid. The exception is thrown before the chain handler is ever invoked, and is caught externally by d8's own handler --- thus evading the uncaught exception event. BUG=v8:4633, v8:4631, v8:4243, v8:3641 LOG=N R=littledan@chromium.org, cbruni@chromium.org Review URL: https://codereview.chromium.org/1531073004 Cr-Commit-Position: refs/heads/master@{#33128}
-
- 04 Jan, 2016 1 commit
-
-
jshin authored
1. Location names with more than one underscores (e.g. Ho_Chi_Minh) didn't work because of the way capturing works with repeated patterns in RE. It's now supported by changing the RE to capture the whole string and splitting on '_' in the next step. 2. Adds support for location names with a hyphen 3. Adds support for timezone ids with three parts (e.g. American/Argentina/Buenos_Aires) 4. Adds special handling of 'au', 'es' and 'of' in zone ids. They need to be kept in lowercase. (see the full list at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ) 5. Adds regression tests for all the above and make the existing tests more robust against future ICU changes. ICU canonicalizes zone names to deprecated names, but it may change. ( http://bugs.icu-project.org/trac/ticket/12044 ) BUG=364374 LOG=Y Review URL: https://codereview.chromium.org/1529363005 Cr-Commit-Position: refs/heads/master@{#33097}
-
- 30 Dec, 2015 1 commit
-
-
littledan authored
Reland of Use ES2015-style TypedArray prototype chain (patchset #1 id:1 of https://codereview.chromium.org/1554523002/ ) Reason for revert: Should be fixed again with this Blink change to add NeedsManualRebaseline Original issue's description: > Revert of Use ES2015-style TypedArray prototype chain (patchset #5 id:80001 of https://codereview.chromium.org/1541233002/ ) > > Reason for revert: > [Sheriff] Changes layout tests. Please fix upstream first if intended. > > https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3689 > > Original issue's description: > > Use ES2015-style TypedArray prototype chain > > > > This patch switches TypedArrays to use the prototype chain described > > in the ES2015 specification, which adds a %TypedArray% superclass above > > all individual TypedArray types. Most methods are defined on the > > superclass rather than the subclasses. > > > > In order to prevent a performance regression, a few methods are > > marked as inline. Inlining might prevent code which was previously > > monomorphic from becoming polymorphic, and it was specifically > > applied in places where methods became more polymorphic than before. > > Tests with realistic workloads would be nice to do before this > > ships in stable. > > > > This patch does not bring TypedArrays up to full spec compliance. In > > particular, @@species is not yet supported. > > > > R=cbruni > > BUG=v8:4085 > > LOG=Y > > > > Committed: https://crrev.com/07c91dccbe55c7be3ec75857dee5ad59873330b7 > > Cr-Commit-Position: refs/heads/master@{#33050} > > TBR=caitpotter88@gmail.com,cbruni@chromium.org,littledan@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:4085 > > Committed: https://crrev.com/28b55ffd1e32e09aaf42b8bbb407944d4808e07c > Cr-Commit-Position: refs/heads/master@{#33053} TBR=caitpotter88@gmail.com,cbruni@chromium.org,machenbach@chromium.org BUG=v8:4085 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1558663002 Cr-Commit-Position: refs/heads/master@{#33067}
-
- 29 Dec, 2015 1 commit
-
-
machenbach authored
Revert of Use ES2015-style TypedArray prototype chain (patchset #5 id:80001 of https://codereview.chromium.org/1541233002/ ) Reason for revert: [Sheriff] Changes layout tests. Please fix upstream first if intended. https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3689 Original issue's description: > Use ES2015-style TypedArray prototype chain > > This patch switches TypedArrays to use the prototype chain described > in the ES2015 specification, which adds a %TypedArray% superclass above > all individual TypedArray types. Most methods are defined on the > superclass rather than the subclasses. > > In order to prevent a performance regression, a few methods are > marked as inline. Inlining might prevent code which was previously > monomorphic from becoming polymorphic, and it was specifically > applied in places where methods became more polymorphic than before. > Tests with realistic workloads would be nice to do before this > ships in stable. > > This patch does not bring TypedArrays up to full spec compliance. In > particular, @@species is not yet supported. > > R=cbruni > BUG=v8:4085 > LOG=Y > > Committed: https://crrev.com/07c91dccbe55c7be3ec75857dee5ad59873330b7 > Cr-Commit-Position: refs/heads/master@{#33050} TBR=caitpotter88@gmail.com,cbruni@chromium.org,littledan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4085 Review URL: https://codereview.chromium.org/1554523002 Cr-Commit-Position: refs/heads/master@{#33053}
-
- 28 Dec, 2015 1 commit
-
-
littledan authored
This patch switches TypedArrays to use the prototype chain described in the ES2015 specification, which adds a %TypedArray% superclass above all individual TypedArray types. Most methods are defined on the superclass rather than the subclasses. In order to prevent a performance regression, a few methods are marked as inline. Inlining might prevent code which was previously monomorphic from becoming polymorphic, and it was specifically applied in places where methods became more polymorphic than before. Tests with realistic workloads would be nice to do before this ships in stable. This patch does not bring TypedArrays up to full spec compliance. In particular, @@species is not yet supported. R=cbruni BUG=v8:4085 LOG=Y Review URL: https://codereview.chromium.org/1541233002 Cr-Commit-Position: refs/heads/master@{#33050}
-
- 17 Dec, 2015 1 commit
-
-
verwaest authored
Allowing global references to be read through a proxy results in cross-origin information leaks. The ES6 spec currently does not mitigate this in any way. This CL adds a workaround that's easy for V8: throw whenever an unresolved reference would result in a proxy trap to be fired. I'm landing this so we can move forwards with staging proxies without putting users of --harmony at risk. BUG=chromium:399951 LOG=n Review URL: https://codereview.chromium.org/1529303003 Cr-Commit-Position: refs/heads/master@{#32949}
-
- 14 Dec, 2015 1 commit
-
-
neis authored
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}
-
- 11 Dec, 2015 1 commit
-
-
cbruni authored
[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}
-
- 09 Dec, 2015 5 commits
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1510833003 Cr-Commit-Position: refs/heads/master@{#32722}
-
verwaest authored
Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods R=yangguo@chromium.org LOG=n Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4 Cr-Commit-Position: refs/heads/master@{#32695} Review URL: https://codereview.chromium.org/1507273002 Cr-Commit-Position: refs/heads/master@{#32720}
-
cbruni authored
LOG=N BUG=v8:1543 Review URL: https://codereview.chromium.org/1509603005 Cr-Commit-Position: refs/heads/master@{#32718}
-
machenbach authored
Revert of Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing metho… (patchset #2 id:20001 of https://codereview.chromium.org/1507273002/ ) Reason for revert: [Sheriff] Breaks layout tests. Please rebase upstream first: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3334 Original issue's description: > Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods > > R=yangguo@chromium.org > LOG=n > > Committed: https://crrev.com/5dffa35350d0f57402806e6bd87a914e1d5933e4 > Cr-Commit-Position: refs/heads/master@{#32695} TBR=yangguo@chromium.org,bmeurer@chromium.org,verwaest@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1510173002 Cr-Commit-Position: refs/heads/master@{#32700}
-
verwaest authored
Make Error.prototype.toString spec compliant; and fix various side-effect-free error printing methods R=yangguo@chromium.org LOG=n Review URL: https://codereview.chromium.org/1507273002 Cr-Commit-Position: refs/heads/master@{#32695}
-
- 04 Dec, 2015 1 commit
-
-
caitpotter88 authored
Attempt #<really big number> Parses, and lazily rewrites Destructuring Assignment expressions. The rewriting strategy involves inserting a placeholder RewritableAssignmentExpression into the AST, whose content expression can be completely rewritten at a later time. Lazy rewriting ensures that errors do not occur due to eagerly rewriting nodes which form part of a binding pattern, thus breaking the meaning of the pattern --- or by eagerly rewriting ambiguous constructs that are not immediately known BUG=v8:811 LOG=Y R=adamk@chromium.org, bmeurer@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1309813007 Cr-Commit-Position: refs/heads/master@{#32623}
-
- 02 Dec, 2015 1 commit
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1484393002 Cr-Commit-Position: refs/heads/master@{#32506}
-
- 01 Dec, 2015 2 commits
-
-
cbruni authored
LOG=N BUG=v8:1543 Review URL: https://codereview.chromium.org/1481383003 Cr-Commit-Position: refs/heads/master@{#32471}
-
neis authored
R=rossberg BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1481103002 Cr-Commit-Position: refs/heads/master@{#32457}
-
- 30 Nov, 2015 1 commit
-
-
neis authored
R=jkummerow@chromium.org BUG= Review URL: https://codereview.chromium.org/1486553002 Cr-Commit-Position: refs/heads/master@{#32394}
-
- 28 Nov, 2015 3 commits
-
-
jkummerow authored
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}
-
machenbach authored
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}
-
jkummerow authored
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}
-
- 26 Nov, 2015 2 commits
-
-
bmeurer authored
Up until now we sometimes pass Smi 0 around as closure and expect the runtime to translate that appropriately. But we need to be careful in some places to not confuse the Smi 0 with a real closure. However, we could instead just pass the correct closure extracted from the native context. This addresses three long-standing TODOs in the JSTypedLowering pass. Drive-by-fix: Further unify error message reporting for ToObject (we had a special message in case of ToObject error in with context creation). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1475383002 Cr-Commit-Position: refs/heads/master@{#32336}
-
neis authored
LOG=N BUG=v8:1543 Review URL: https://codereview.chromium.org/1479543002 Cr-Commit-Position: refs/heads/master@{#32320}
-
- 24 Nov, 2015 2 commits
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1467473002 Cr-Commit-Position: refs/heads/master@{#32223}
-
neis authored
BUG= Review URL: https://codereview.chromium.org/1441043002 Cr-Commit-Position: refs/heads/master@{#32212}
-