- 04 May, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/1946883003 Cr-Commit-Position: refs/heads/master@{#36005}
-
- 02 May, 2016 1 commit
-
-
neis authored
This avoids weird control flow when the bytecode generator skips dead code containing yields. BUG=v8:4907 LOG=n Review-Url: https://codereview.chromium.org/1927943003 Cr-Commit-Position: refs/heads/master@{#35940}
-
- 28 Apr, 2016 1 commit
-
-
jarin authored
Try catch interacts badly with OSR and for-in. BUG=chromium:607493 LOG=n Review-Url: https://codereview.chromium.org/1931973002 Cr-Commit-Position: refs/heads/master@{#35877}
-
- 27 Apr, 2016 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1920883003 Cr-Commit-Position: refs/heads/master@{#35804}
-
- 13 Apr, 2016 1 commit
-
-
neis authored
Annotate generator functions and loops therein with the number of contained yields. This information will eventually be used by the bytecode generator. R=bmeurer@chromium.org BUG=v8:4907 LOG=n Review URL: https://codereview.chromium.org/1877403003 Cr-Commit-Position: refs/heads/master@{#35439}
-
- 11 Apr, 2016 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1856643002 Cr-Commit-Position: refs/heads/master@{#35399}
-
- 22 Mar, 2016 1 commit
-
-
adamk authored
Now that ES2015 const has shipped, in Chrome 49, legacy const declarations are no more. This lets us remove a bunch of code from many parts of the codebase. In this patch, I remove parser support for generating legacy const variables from const declarations. This also removes the special "illegal declaration" bit from Scope, which has ripples into all compiler backends. Also gone are any tests which relied on legacy const declarations. Note that we do still generate a Variable in mode CONST_LEGACY in one case: function name bindings in sloppy mode. The likely fix there is to add a new Variable::Kind for this case and handle it appropriately for stores in each backend, but I leave that for a later patch to make this one completely subtractive. Review URL: https://codereview.chromium.org/1819123002 Cr-Commit-Position: refs/heads/master@{#35002}
-
- 16 Mar, 2016 1 commit
-
-
ishell authored
This should recover regression caused by 7f11fba7 (https://codereview.chromium.org/1739233002). TBR=bmeurer@chromium.org BUG=chromium:592692, chromium:595265 LOG=N Review URL: https://codereview.chromium.org/1807913002 Cr-Commit-Position: refs/heads/master@{#34824}
-
- 15 Mar, 2016 1 commit
-
-
ishell authored
This should recover a part of the regression caused by 7f11fba7 (https://codereview.chromium.org/1739233002). BUG=chromium:592692 LOG=N Review URL: https://codereview.chromium.org/1793293003 Cr-Commit-Position: refs/heads/master@{#34783}
-
- 07 Mar, 2016 1 commit
-
-
ishell authored
HInvokeFunction and HApplyArguments instructions now support tail calling. Inlining of calls at tail position is not supported yet and therefore still disabled. The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft. TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1760253003 Cr-Commit-Position: refs/heads/master@{#34542}
-
- 04 Mar, 2016 1 commit
-
-
mvstanton authored
Crankshaft can't track operand/environment changes between arbitrary statements. We need that to fully support do-expressions. Instead, a subset is supported by bailing out on break statements, continue statements, and if we've made an OSR entry within a do-expression. This partial support is a good idea because do-expressions are a useful tool for desugaring during parsing. BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1769463002 Cr-Commit-Position: refs/heads/master@{#34491}
-
- 29 Feb, 2016 1 commit
-
-
bmeurer authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1748613002 Cr-Commit-Position: refs/heads/master@{#34358}
-
- 19 Feb, 2016 4 commits
-
-
nikolaos authored
of non-pattern expressions, according to the (internally circulated) design document. Details to be provided here. 1. RewritableAssignmentExpression has been renamed to RewritableExpression. It is a wrapper for AST nodes that wait for some potential rewriting (that may or may not happen). Also, Is... and As... macros now see through RewritableExpressions. 2. The function state keeps a list of rewritable expressions that must be rewritten only if they are used as non-pattern expressions. 3. Expression classifiers are now templates, parameterized by parser traits. They keep some additional state: a pointer to the list of non-pattern rewritable expressions. It is important that expression classifiers be used strictly in a stack fashion, from now on. 4. The RewriteNonPattern function has been simplified. BUG=chromium:579913 LOG=N Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c Cr-Commit-Position: refs/heads/master@{#34154} Review URL: https://codereview.chromium.org/1702063002 Cr-Commit-Position: refs/heads/master@{#34162}
-
jarin authored
Another attempt, after the failing test (flushed bug) has been disabled in chromium (https://codereview.chromium.org/1710353002). Review URL: https://codereview.chromium.org/1713033002 Cr-Commit-Position: refs/heads/master@{#34159}
-
machenbach authored
Revert of Non-pattern rewriting revisited (patchset #3 id:40001 of https://codereview.chromium.org/1702063002/ ) Reason for revert: [Sheriff] This makes jsfunfuzz unhappy: https://build.chromium.org/p/client.v8/builders/V8%20Fuzzer/builds/7681 Original issue's description: > This patch implements an alternative approach to the rewriting > of non-pattern expressions, according to the (internally circulated) > design document. Details to be provided here. > > 1. RewritableAssignmentExpression has been renamed to RewritableExpression. > It is a wrapper for AST nodes that wait for some potential rewriting > (that may or may not happen). Also, Is... and As... macros now see > through RewritableExpressions. > > 2. The function state keeps a list of rewritable expressions that must be > rewritten only if they are used as non-pattern expressions. > > 3. Expression classifiers are now templates, parameterized by parser > traits. They keep some additional state: a pointer to the list of > non-pattern rewritable expressions. It is important that expression > classifiers be used strictly in a stack fashion, from now on. > > 4. The RewriteNonPattern function has been simplified. > > BUG=chromium:579913 > LOG=N > > Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c > Cr-Commit-Position: refs/heads/master@{#34154} TBR=rossberg@chromium.org,bmeurer@chromium.org,titzer@chromium.org,nikolaos@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:579913 Review URL: https://codereview.chromium.org/1712203002 Cr-Commit-Position: refs/heads/master@{#34158}
-
nikolaos authored
of non-pattern expressions, according to the (internally circulated) design document. Details to be provided here. 1. RewritableAssignmentExpression has been renamed to RewritableExpression. It is a wrapper for AST nodes that wait for some potential rewriting (that may or may not happen). Also, Is... and As... macros now see through RewritableExpressions. 2. The function state keeps a list of rewritable expressions that must be rewritten only if they are used as non-pattern expressions. 3. Expression classifiers are now templates, parameterized by parser traits. They keep some additional state: a pointer to the list of non-pattern rewritable expressions. It is important that expression classifiers be used strictly in a stack fashion, from now on. 4. The RewriteNonPattern function has been simplified. BUG=chromium:579913 LOG=N Review URL: https://codereview.chromium.org/1702063002 Cr-Commit-Position: refs/heads/master@{#34154}
-
- 18 Feb, 2016 1 commit
-
-
ishell authored
BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1713533002 Cr-Commit-Position: refs/heads/master@{#34115}
-
- 16 Feb, 2016 1 commit
-
-
mstarzinger authored
The LazyBailout operator (modelled as a nop-call) was introduced for placing a deoptimization point into exception handlers. Now that we are no longer re-entering lazy deoptimized code, the support can be removed. R=jarin@chromium.org BUG=v8:4195 LOG=n Review URL: https://codereview.chromium.org/1697503002 Cr-Commit-Position: refs/heads/master@{#34020}
-
- 12 Feb, 2016 2 commits
-
-
machenbach authored
Revert of [turbofan] Ship turbofan try-catch. (patchset #1 id:1 of https://codereview.chromium.org/1694743003/ ) Reason for revert: [Sheriff] Might break layout tests unintended. Original issue's description: > [turbofan] Ship turbofan try-catch. > > Committed: https://crrev.com/5bb459ba4daa34e5ed2fca0dd146aa18f9b6b036 > Cr-Commit-Position: refs/heads/master@{#33938} TBR=mstarzinger@chromium.org,bmeurer@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1688403003 Cr-Commit-Position: refs/heads/master@{#33947}
-
jarin authored
Review URL: https://codereview.chromium.org/1694743003 Cr-Commit-Position: refs/heads/master@{#33938}
-
- 11 Feb, 2016 1 commit
-
-
ishell authored
This CL also removes tail call support made so far from Crankshaft. BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1683793004 Cr-Commit-Position: refs/heads/master@{#33885}
-
- 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}
-
- 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}
-
- 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}
-
- 16 Dec, 2015 1 commit
-
-
bmeurer authored
R=hablich@chromium.org Review URL: https://codereview.chromium.org/1531653002 Cr-Commit-Position: refs/heads/master@{#32886}
-
- 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}
-
- 01 Dec, 2015 2 commits
-
-
mstarzinger authored
Revert of [turbofan] Ship TurboFan with new.target references. (patchset #1 id:1 of https://codereview.chromium.org/1482733002/ ) Reason for revert: Tanks sunspider/date-format-tofte because of the Date constructor being turbofanned. Original issue's description: > [turbofan] Ship TurboFan with new.target references. > > 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. > > R=bmeurer@chromium.org > > Committed: https://crrev.com/2ec6fcd1520bb8a09c9924ac5498eb9b437670b0 > Cr-Commit-Position: refs/heads/master@{#32444} TBR=bmeurer@chromium.org,rossberg@chromium.org,hablich@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1489833002 Cr-Commit-Position: refs/heads/master@{#32455}
-
mstarzinger 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. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1482733002 Cr-Commit-Position: refs/heads/master@{#32444}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 18 Nov, 2015 1 commit
-
-
mstarzinger authored
This triggers TurboFan whenever functions containing spread expressions of any kind are marked for optimization. Note that this increases the set of functions being eligible for optimization. R=rossberg@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1461603002 Cr-Commit-Position: refs/heads/master@{#32083}
-
- 04 Nov, 2015 1 commit
-
-
ishell authored
Review URL: https://codereview.chromium.org/1412223018 Cr-Commit-Position: refs/heads/master@{#31785}
-
- 21 Oct, 2015 1 commit
-
-
caitpotter88 authored
Adds an implementation of "do expression" parsing (https://webcache.googleusercontent.com/search?q=cache:MIGALjqPDNgJ:wiki.ecmascript.org/doku.php%3Fid%3Dstrawman:do_expressions+&cd=1&hl=en&ct=clnk&gl=us). This feature provides a way to evaluate a block of statements within an expression context, producing the resulting completion value. This is very helpful for implementing certain language features via desugaring. BUG=v8:4488 LOG=N R=adamk@chromium.org, bmeurer@chromium.org, rossberg@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1399893002 Cr-Commit-Position: refs/heads/master@{#31428}
-
- 15 Oct, 2015 1 commit
-
-
adamk authored
This adds a bit of boilerplate to some AstVisitors (they now have to declare their own zone_ member and zone() accessor), but makes it clearer what DEFINE_AST_VISITOR_SUBCLASS_MEMBERS is for: stack limit checking. Review URL: https://codereview.chromium.org/1394303008 Cr-Commit-Position: refs/heads/master@{#31287}
-
- 14 Oct, 2015 1 commit
-
-
adamk authored
Previously, any AstVisitor subclasses which wanted to make use of the shared stack overflow checking code needed to depend on Isolate. With this patch, it will be easy to create a second InitializeAstVisitor overload taking a stack_limit directly, for use in code that has no Isolate available (such as code running in the parser). AstVisitor subclasses which depended upon the isolate() accessor have been fixed to either have their own isolate_ member or get it from somewhere else convenient. Review URL: https://codereview.chromium.org/1387383005 Cr-Commit-Position: refs/heads/master@{#31260}
-
- 13 Oct, 2015 1 commit
-
-
mvstanton authored
The lack of a vector slot for the keyed store operation in filling in non-constant array literal properties led to undesirable contortions in compilers downwind of full-codegen. The use of a single slot to initialize all the array elements is sufficient. BUG= Review URL: https://codereview.chromium.org/1405503002 Cr-Commit-Position: refs/heads/master@{#31242}
-
- 01 Oct, 2015 1 commit
-
-
ishell authored
This CL also allows to use arbitrary number of feedback vector elements for particular slot kind. Review URL: https://codereview.chromium.org/1370303004 Cr-Commit-Position: refs/heads/master@{#31050}
-
- 28 Sep, 2015 2 commits
-
-
ishell authored
Review URL: https://codereview.chromium.org/1372003002 Cr-Commit-Position: refs/heads/master@{#30974}
-
ishell authored
This is a second step towards merging FeedbackVectorSlot and FeedbackVectorICSlot. Review URL: https://codereview.chromium.org/1376443002 Cr-Commit-Position: refs/heads/master@{#30971}
-
- 21 Sep, 2015 1 commit
-
-
littledan authored
ES2015 specifies very particular semantics for functions defined in blocks. In strict mode, it is simply a lexical binding scoped to that block. In sloppy mode, in addition to that lexical binding, there is a var-style binding in the outer scope, which is overwritten with the local binding when the function declaration is evaluated, *as long as* introducing ths var binding would not create a var/let conflict in the outer scope. This patch implements the semantics by introducing a DelegateStatement, which is initially filled in with the EmptyStatement and overwritten with the assignment when the scope is closed out and it can be checked that there is no conflict. This patch is tested with a new mjsunit test, and I tried staging it and running test262, finding that the tests that we have disabled due to lack of Annex B support now pass. R=adamk,rossberg LOG=Y BUG=v8:4285 Review URL: https://codereview.chromium.org/1332873003 Cr-Commit-Position: refs/heads/master@{#30842}
-
- 10 Sep, 2015 1 commit
-
-
mvstanton authored
The refactoring is because it's awkward and error-prone to deterimine which IC slot an ObjectLiteralProperty uses for feedback. The fix is for each one to know it's own slot. In the numbering pass, we allocate slots for the ObjectLiteral, then hand out those slots into the properties. It adds one word to the ObjectLiteralProperty expression - I'm investigating if thats a problem. This changes makes compiling the object literal cleaner across the three compilers. Also, the slot allocation logic in ObjectLiteral::ComputeFeedbackRequirements() was refactoring to mimic the style in full-codegen. This is useful since it must remain in sync with FullCodegen::VisitObjectLiteral(). Review URL: https://codereview.chromium.org/1321993004 Cr-Commit-Position: refs/heads/master@{#30686}
-