- 02 Feb, 2016 1 commit
-
-
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}
-
- 01 Feb, 2016 1 commit
-
-
adamk authored
A class's name is its constructor's name, so there's no need to treat it separately, either in the parser or in code generation. The main parser use of the name is for ES2015 Function.name handling, and this patch also cleans up handling there by adding a new IsAnonymousFunctionDefinition() method to Expression (the name comes from the spec). Also removed unused ParserTraits::DefaultConstructor method. BUG=v8:3699 LOG=n Review URL: https://codereview.chromium.org/1647213002 Cr-Commit-Position: refs/heads/master@{#33643}
-
- 27 Jan, 2016 1 commit
-
-
mstarzinger authored
This cleans up the aforementioned predicate to not rely on the flags computed for communication between compiled code and the runtime. The underlying predicates of the AST are used directly instead. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1638353002 Cr-Commit-Position: refs/heads/master@{#33559}
-
- 26 Jan, 2016 1 commit
-
-
ishell authored
This CL implements PrepareForTailCall() mentioned in ES6 spec for full codegen, Crankshaft and Turbofan. When debugger is active tail calls are disabled. Tail calling can be enabled by --harmony-tailcalls flag. BUG=v8:4698 LOG=Y TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1609893003 Cr-Commit-Position: refs/heads/master@{#33509}
-
- 25 Jan, 2016 1 commit
-
-
bmeurer authored
Now TurboFan always uses the newly introduced %ForInPrepare, no matter whether baseline is the interpreter or fullcodegen. For fullcodegen, we introduce a new PrepareId bailout point for this purpose. Drive-by-fix: Avoid the NoObservableSideEffectsScope in Crankshaft and use the PrepareId bailout point instead. R=jarin@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1630523002 Cr-Commit-Position: refs/heads/master@{#33480}
-
- 21 Jan, 2016 2 commits
-
-
adamk authored
Review URL: https://codereview.chromium.org/1601023005 Cr-Commit-Position: refs/heads/master@{#33446}
-
bmeurer authored
The PrepareId bailout location was used incorrectly in Crankshaft and, as it turns out, is not required anyway (once you do it right). Also there was some premature optimization going on with the CheckEnumCache (trying to load null from roots only once), plus we can be smarter about the null/undefined check anyway. The idea behind this changes is to prepare unification of the two different ForInPrepare implementations that we now have, with the end result being that we only use the new implementation that was recently added for the interpreter. R=jarin@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1618613002 Cr-Commit-Position: refs/heads/master@{#33426}
-
- 19 Jan, 2016 1 commit
-
-
nikolaos authored
After 1564083002, spread expressions are desugared and should not survive in the AST after parsing. This patch removes dead code related to this. It also eliminates the kSpread bailout reason and the concat_iterable_to_array_builtin. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1592713002 Cr-Commit-Position: refs/heads/master@{#33385}
-
- 18 Jan, 2016 1 commit
-
-
nikolaos authored
This became temporarily a big issue, because spreads are desugared into do-expressions. This patch fixes the problem with having spreads as parameter initializers in arrow expressions, e.g., this line would crash: [], ((x = [...[42]]) => x)(); R=rossberg@chromium.org BUG=chromium:578038 LOG=N Review URL: https://codereview.chromium.org/1581403007 Cr-Commit-Position: refs/heads/master@{#33365}
-
- 16 Jan, 2016 1 commit
-
-
adamk authored
This may have made more sense in the old module design (where "unification" was a thing), but as-is it's only used for a few asserts in debug mode. These asserts don't make much sense inside ModuleDescriptor; instead, as the modules implementation is fleshed out, I expect the appropriate replacement asserts to show up at the use of the ModuleDescriptor. Review URL: https://codereview.chromium.org/1598433006 Cr-Commit-Position: refs/heads/master@{#33345}
-
- 15 Jan, 2016 1 commit
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1587543003 Cr-Commit-Position: refs/heads/master@{#33323}
-
- 14 Jan, 2016 1 commit
-
-
nikolaos authored
In short, array literals containing spreads, when used as expressions, are rewritten using do expressions. E.g. [1, 2, 3, ...x, 4, ...y, 5] is roughly rewritten as: do { $R = [1, 2, 3]; for ($i of x) %AppendElement($R, $i); %AppendElement($R, 4); for ($j of y) %AppendElement($R, $j); %AppendElement($R, 5); $R } where $R, $i and $j are fresh temporary variables. R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1564083002 Cr-Commit-Position: refs/heads/master@{#33307}
-
- 11 Jan, 2016 1 commit
-
-
nikolaos authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1565153002 Cr-Commit-Position: refs/heads/master@{#33200}
-
- 08 Jan, 2016 5 commits
-
-
adamk authored
Removed unused name_ field, made bitfield 16-bits long, and moved it to the start of the struct, resulting in a reduction of 8 bytes on both 32 and 64-bit platforms. Most other changes (which prompted this work) are cosmetic:r - Combined redundant enums - Named enum values kConsistently - Consistently use booleans in bitfield, using enum values only for passing information into NewFunctionLiteral - Removed unneeded arguments from NewFunctionLiteral, reducing clutter at callsites - Added const correctness consistently Review URL: https://codereview.chromium.org/1566053002 Cr-Commit-Position: refs/heads/master@{#33194}
-
caitpotter88 authored
Encode "parenthesized" status of parenthesized Expressions to prevent them from being treated as Patterns. BUG=v8:4657, v8:811 LOG=N R=rossberg@chromium.org, adamk@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1570793002 Cr-Commit-Position: refs/heads/master@{#33190}
-
littledan authored
The sloppy block-scoped function declaration placeholder statements are held in parser_zone_-allocated hashtables. These hashtables are not updated when local_zone_s are removed. Therefore, the NewSloppyBlockFunctionStatement method should allocate SloppyBlockScopeFunctionStatements in the parser_zone_ to avoid a use-after-free. Scope fixup code may end up updating something which is thrown away, but this is a small cost and much simpler than removing dead hashtable entries later. R=adamk LOG=Y BUG=chromium:537816 Review URL: https://codereview.chromium.org/1564923007 Cr-Commit-Position: refs/heads/master@{#33185}
-
nikolaos authored
This patch introduces a mechanism for changing the scope of temporary variables, which is necessary for rewriting arrow parameter initializers. It also fixes a potential bug in AstExpressionVisitor, which did not visit the automatically generated members of ForEachStatement. Fixes test/mjsunit/harmony/regress/regress-4658.js R=rossberg@chromium.org BUG=v8:4658 LOG=N Review URL: https://codereview.chromium.org/1564343002 Cr-Commit-Position: refs/heads/master@{#33183}
-
yangguo authored
R=rossberg@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1565183002 Cr-Commit-Position: refs/heads/master@{#33169}
-
- 07 Jan, 2016 1 commit
-
-
bmeurer authored
This correctly marks functions containing a new.target reference as being disabled with Crankshaft, which would have bailed out anyways. Also note that this will trigger TurboFan for such functions and hence widens the TurboFan intake valve. Review URL: https://codereview.chromium.org/1568763002 Cr-Commit-Position: refs/heads/master@{#33146}
-
- 06 Jan, 2016 1 commit
-
-
adamk authored
This required refactoring ParsePropertyDefinition to pass the parsed string name as an out param, since ObjectLiteralProperty stores Smis for Smi-representable property keys. Computed properties are not yet handled in this patch. BUG=v8:3699 LOG=n Review URL: https://codereview.chromium.org/1563923002 Cr-Commit-Position: refs/heads/master@{#33141}
-
- 04 Jan, 2016 1 commit
-
-
jarin authored
BUG=572409 LOG=n Review URL: https://codereview.chromium.org/1555023002 Cr-Commit-Position: refs/heads/master@{#33078}
-
- 31 Dec, 2015 1 commit
-
-
mvstanton authored
TurboFan can accept them, it calls a runtime function to initialize the rest object as a JSArray. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1543253002 Cr-Commit-Position: refs/heads/master@{#33071}
-
- 23 Dec, 2015 1 commit
-
-
mvstanton authored
We'll be able to optimize rest parameters in TurboFan similarly to the arguments array. This CL restores the previous behavior, and a follow-on will enable TurboFan optimization. (TBR for rossberg since we discussed the revert beforehand. The only changes are a few lines related to tests and rebasing.) TBR=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1537683002 Cr-Commit-Position: refs/heads/master@{#33024}
-
- 17 Dec, 2015 1 commit
-
-
rossberg authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1530403004 Cr-Commit-Position: refs/heads/master@{#32943}
-
- 16 Dec, 2015 2 commits
-
-
bmeurer authored
R=hablich@chromium.org Review URL: https://codereview.chromium.org/1531653002 Cr-Commit-Position: refs/heads/master@{#32886}
-
yangguo authored
TBR=adamk@chromium.org R=erik.corry@gmail.com BUG=v8:4616 LOG=N Review URL: https://codereview.chromium.org/1522353002 Cr-Commit-Position: refs/heads/master@{#32879}
-
- 14 Dec, 2015 1 commit
-
-
yangguo authored
Debug-evaluate used to resolve stack variables that shadow context variables incorrectly, since the stack variable is not visible in the context chain. To fix this, we limit local variables accessible by debug- evaluate to the ones directly referenced inside the function. What is not referenced by the function itself, is considered optimized out and not accessible by debug-evaluate. To achieve this, we duplicate the entire context chain up to the native context, and write back changes after debug- evaluate. Changes to the original context chain will however be overwritten. This already happens for catch and block scopes though. Also fix a crash caused by declaring variables inside debug- evaluate. R=mstarzinger@chromium.org BUG=v8:4593 LOG=N Review URL: https://codereview.chromium.org/1500933002 Cr-Commit-Position: refs/heads/master@{#32828}
-
- 12 Dec, 2015 1 commit
-
-
adamk authored
This is behind the --harmony-function-name flag, currently disabled. With the flag enabled, we now pass the relevant tests in language/statements/*/fn-name-*. BUG=v8:3699 LOG=y Review URL: https://codereview.chromium.org/1518873004 Cr-Commit-Position: refs/heads/master@{#32817}
-
- 11 Dec, 2015 4 commits
-
-
caitpotter88 authored
BUG=v8:811, v8:4599 LOG=N R=adamk@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1517973002 Cr-Commit-Position: refs/heads/master@{#32814}
-
bmeurer authored
Instead desugar the default constructor for derived classes using the same mechanism we use for normal super constructor calls. TBR=rossberg@chromium.org R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1517243002 Cr-Commit-Position: refs/heads/master@{#32810}
-
adamk authored
Revert of [es6] support AssignmentPattern as LHS in for-in/of loops (patchset #9 id:280001 of https://codereview.chromium.org/1508933004/ ) Reason for revert: Hits unreachable code (found by fuzzer). Example crasher: "for(();;);" Original issue's description: > [es6] support AssignmentPattern as LHS in for-in/of loops > > BUG=v8:811, v8:4599 > LOG=N > R=adamk@chromium.org, rossberg@chromium.org > > Committed: https://crrev.com/e47bdb775564b2cd8365047425898ab4274190a6 > Cr-Commit-Position: refs/heads/master@{#32773} TBR=rossberg@chromium.org,caitpotter88@gmail.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:811, v8:4599 Review URL: https://codereview.chromium.org/1511773009 Cr-Commit-Position: refs/heads/master@{#32774}
-
caitpotter88 authored
BUG=v8:811, v8:4599 LOG=N R=adamk@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1508933004 Cr-Commit-Position: refs/heads/master@{#32773}
-
- 10 Dec, 2015 1 commit
-
-
adamk authored
This makes it consistent in behavior with its heap-resident equivalent. Also some minor cleanup in the AstString class hierarchy. BUG=v8:4595 LOG=n Review URL: https://codereview.chromium.org/1511363002 Cr-Commit-Position: refs/heads/master@{#32733}
-
- 09 Dec, 2015 3 commits
-
-
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}
-
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}
-
- 07 Dec, 2015 1 commit
-
-
rossberg authored
R=adamk@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/1477093003 Cr-Commit-Position: refs/heads/master@{#32655}
-
- 04 Dec, 2015 2 commits
-
-
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}
-
bmeurer authored
Revert of Provide call counts for constructor calls, surface them as a vector IC. (patchset #4 id:60001 of https://codereview.chromium.org/1476413003/ ) Reason for revert: Seems to be (mostly) responsible for the most recent Speedometer regression, not 100% sure. Let's see what the bots have to say. Original issue's description: > Provide call counts for constructor calls, surface them as a vector IC. > > CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that there is a request to make CallConstructStub look analogous. Enter ConstructICStub. > > BUG= > > Committed: https://crrev.com/66d5a9df62da458a51e8c7ed1811dc9660f4f418 > Cr-Commit-Position: refs/heads/master@{#32452} TBR=mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1489413006 Cr-Commit-Position: refs/heads/master@{#32599}
-
- 03 Dec, 2015 1 commit
-
-
machenbach authored
Reland of [debugger] do not restart frames that reference new.target for liveedit. (patchset #1 id:1 of https://codereview.chromium.org/1493863004/ ) Reason for revert: Didn't help... Original issue's description: > Revert of [debugger] do not restart frames that reference new.target for liveedit. (patchset #1 id:1 of https://codereview.chromium.org/1493363002/ ) > > Reason for revert: > [Sheriff] Speculative revert for https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/3225 > > Original issue's description: > > [debugger] do not restart frames that reference new.target for liveedit. > > > > R=mstarzinger@chromium.org > > > > Committed: https://crrev.com/6fca870240bdbb07a365189b5eb0c98fa65b3682 > > Cr-Commit-Position: refs/heads/master@{#32572} > > TBR=mstarzinger@chromium.org,yangguo@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Committed: https://crrev.com/1a61dab34b9849f3f70a42ce69317e22758c53a1 > Cr-Commit-Position: refs/heads/master@{#32582} TBR=mstarzinger@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1492393003 Cr-Commit-Position: refs/heads/master@{#32587}
-