- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 25 May, 2016 1 commit
-
-
jgruber authored
Add stack overflow checks to AstTraversalVisitor, and let AstExpressionVisitor reuse traversal logic from AstTraversalVisitor. R=yangguo@chromium.org BUG= Review-Url: https://codereview.chromium.org/2004363002 Cr-Commit-Position: refs/heads/master@{#36500}
-
- 24 May, 2016 2 commits
-
-
mvstanton authored
The TurboFan inliner makes use of these counts. BUG= Review-Url: https://codereview.chromium.org/1969783002 Cr-Commit-Position: refs/heads/master@{#36472}
-
machenbach authored
For cross-compiler-compatibility and standards compliance %p requires a void*, rather than any pointer type. BUG=chromium:474921 Review-Url: https://codereview.chromium.org/2001073002 Cr-Commit-Position: refs/heads/master@{#36466}
-
- 20 May, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/1996373002 Cr-Commit-Position: refs/heads/master@{#36419}
-
- 18 May, 2016 1 commit
-
-
hablich authored
Revert of Ship Turbofan optimization for try-catch and try-finally. (patchset #1 id:1 of https://codereview.chromium.org/1946883003/ ) Reason for revert: Reverted because of BUG=chromium:611885 Original issue's description: > Ship Turbofan optimization for try-catch and try-finally. > > Committed: https://crrev.com/b84b01e6d2d8a0ed1e6b9186a5af755bab4bac9a > Cr-Commit-Position: refs/heads/master@{#36005} TBR=bmeurer@chromium.org,jarin@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/1994543002 Cr-Commit-Position: refs/heads/master@{#36309}
-
- 17 May, 2016 1 commit
-
-
jgruber authored
Contrary to AstVisitor, which does not implement any traversal logic, AstTraversalVisitor provides default implementations for each Visit* function which walk through the AST. It is intended to be used as a base class for visitors which are only interested in a small portion of the AST. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/1963243003 Cr-Commit-Position: refs/heads/master@{#36283}
-
- 16 May, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4483 LOG=Y R=littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/1841543003 Cr-Commit-Position: refs/heads/master@{#36261}
-
- 12 May, 2016 3 commits
-
-
vogelheim authored
Expression::bounds_ is used only by a subset of compile passes, but the data structure occupies space for every Expression node ever parsed. This unneccessarily increases memory consumption. Particularly, peak memory consumption during startup, which may cause out-of-memory errors. This CL - removes Expression::bounds_; - introduces an AstTypeBounds container, which mappes Expression* to Bounds; - modifies the code that actually requires bounds information, namely Crankshaft compile and AsmWasmBuilder, to instantiate such an AstTypeBounds container before typing and to pass it to the code that consumes this information; and - modifies all accesses to Expression::bounds_ to instead access the bounds via the container instead. Additionally, this rewrites test-ast-expression-visitor. The reason is that this code attempted to test AstExpressionVisitor but did so exclusively through its subclass ExpressionTypeCollector, meaning that the test dealt almost exclusively with type bounds despite the class-under-test having no knowledge or functionality related to it. Worse, the test was written in a way to assume that type bounds were available outside & after compilation, which is something this change changes. BUG=v8:4947 Review-Url: https://codereview.chromium.org/1968383002 Cr-Commit-Position: refs/heads/master@{#36222}
-
mstarzinger authored
This adds the --validate-asm flag which will trigger validation of all asm.js modules before they are being compiled. In case a module doesn't pass validation, a warning will be printed, but compilation as well as execution will continue unhampered. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/1972593002 Cr-Commit-Position: refs/heads/master@{#36216}
-
adamk authored
Also make all AstVisitors consistently visit all the relevant parts of ForOfStatement. PrettyPrinter no longer fares well, but given how much desugaring happens to ForOf in the parser, any pretty-printed view of it isn't going to be human readable. AstPrinter, on the other hand, now gives a realistic view of what's been generated for for-of. Review-Url: https://codereview.chromium.org/1968753004 Cr-Commit-Position: refs/heads/master@{#36215}
-
- 10 May, 2016 1 commit
-
-
adamk authored
When the rewriter moves a temporary variable between scopes, it must be sure to maintain the order, so that the rewritten order is the same as it would have been without rewriting. To expose the difference in behavior, this patch removes the superfluous visitation of ForOfStatement::each() from AstExpressionVisitor, which happened to be the only thing keeping all the temporaries in order in mjsunit/harmony/regress/regress-crbug-578038.js. Without the proper order, this test would fail under --stress-opt, because the ".for" variable (behind the "each" proxy) would get two different positions in the scope, one on first parse (with rewriting) and the other on second parse (lazy parsing for optimization). A follow-up patch will remove each() and iterable() from ForOfStatement altogether, but I wanted to keep this patch small to highlight exactly the bit of code needed to make the test pass when not visiting each(). BUG=v8:4791 LOG=n Review-Url: https://codereview.chromium.org/1784893003 Cr-Commit-Position: refs/heads/master@{#36150}
-
- 04 May, 2016 2 commits
-
-
adamk authored
Scope analysis is over-conservative when treating variable resolutions as possibly-shadowed by a sloppy eval. In the attached bug, this comes into play since catch scopes have different behavior with respect to the "calls eval" in eager vs lazy compilation (in the latter, they are never marked as "calls eval" because CatchContexts don't have an associated ScopeInfo). This patch changes the scope-type check to also eliminate a few other cases where shadowing isn't possible, such as non-declaration block scopes. BUG=chromium:608279 LOG=n Review-Url: https://codereview.chromium.org/1950803002 Cr-Commit-Position: refs/heads/master@{#36046}
-
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}
-
- 29 Apr, 2016 1 commit
-
-
mike authored
Restrict the use of the `await` token as an identifier when parsing source text as module code. From http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words: > 11.6.2.2 Future Reserved Words > > The following tokens are reserved for used as keywords in future > language extensions. > > Syntax > > FutureReservedWord :: > enum > await > > await is only treated as a FutureReservedWord when Module is the goal > symbol of the syntactic grammar. BUG=v8:4767 LOG=N R=adamk@chromium.org Review-Url: https://codereview.chromium.org/1723313002 Cr-Commit-Position: refs/heads/master@{#35914}
-
- 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 2 commits
-
-
yangguo authored
R=bmeurer@chromium.org, kozyatinskiy@chromium.org BUG=chromium:582048 LOG=N Review URL: https://codereview.chromium.org/1916343002 Cr-Commit-Position: refs/heads/master@{#35805}
-
jarin authored
Review URL: https://codereview.chromium.org/1920883003 Cr-Commit-Position: refs/heads/master@{#35804}
-
- 22 Apr, 2016 2 commits
-
-
mike authored
Refactor the Scope object to automatically enable strict mode when initialized as a "module" scope, relieving the caller of this responsibility. BUG=v8:4941 LOG=N R=adamk@chromium.org Review URL: https://codereview.chromium.org/1906923002 Cr-Commit-Position: refs/heads/master@{#35730}
-
yangguo authored
Some scopes are introduced by the parser for desugaring and do not have any positions associated. The debugger should not make them visible. Also add some missing source positions. R=kozyatinskiy@chromium.org, rossberg@chromium.org BUG=chromium:604458 LOG=Y Review URL: https://codereview.chromium.org/1901413002 Cr-Commit-Position: refs/heads/master@{#35721}
-
- 19 Apr, 2016 1 commit
-
-
adamk authored
Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). Review URL: https://codereview.chromium.org/1895973002 Cr-Commit-Position: refs/heads/master@{#35632}
-
- 15 Apr, 2016 1 commit
-
-
nikolaos authored
This patch correctly re-scopes inner scopes that can appear in do expressions used as initializers to arrow parameters. R=rossberg@chromium.org BUG=v8:4904 LOG=N Review URL: https://codereview.chromium.org/1887743002 Cr-Commit-Position: refs/heads/master@{#35542}
-
- 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}
-
- 12 Apr, 2016 1 commit
-
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 Reverted again in: https://codereview.chromium.org/1877823003 Reverts due to non-CQ bots: - First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg - Second: gc mole (added to v8_linux_rel_ng for this patch) R= jochen@chromium.org TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1872203005 Cr-Commit-Position: refs/heads/master@{#35423}
-
- 11 Apr, 2016 3 commits
-
-
jarin authored
Review URL: https://codereview.chromium.org/1856643002 Cr-Commit-Position: refs/heads/master@{#35399}
-
https://codereview.chromium.org/1877453002/machenbach authored
Reason for revert: Breaks gc mole: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9421 Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > Original CL: https://codereview.chromium.org/1869433004 > Reverted in: https://codereview.chromium.org/1867383002 > > R= jochen@chromium.org > TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/bf505329288e1b75bab0e6800371a9aac40fa5cc > Cr-Commit-Position: refs/heads/master@{#35394} TBR=jochen@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,jfb@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/1877823003 Cr-Commit-Position: refs/heads/master@{#35396}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 R= jochen@chromium.org TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1877453002 Cr-Commit-Position: refs/heads/master@{#35394}
-
- 08 Apr, 2016 2 commits
-
-
jfb authored
Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ ) Reason for revert: One small issue easily fixed here: https://codereview.chromium.org/1867333003/ But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful: Stderr: f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect format specifier", 0) It's easier to revert for now, I'll dig more into the docs: https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx And then resubmit, making sure I run these bots. Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d > Cr-Commit-Position: refs/heads/master@{#35365} TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@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/1867383002 Cr-Commit-Position: refs/heads/master@{#35366}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1869433004 Cr-Commit-Position: refs/heads/master@{#35365}
-
- 04 Apr, 2016 2 commits
-
-
neis authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1857703002 Cr-Commit-Position: refs/heads/master@{#35228}
-
neis authored
The parser uses a try-catch in order to record when the client of an iterator throws. The exception then used to get rethrown via 'throw', which unfortunately resulted in the original exception message object getting overwritten. This CL solves this as follows: - add a clear_pending_message flag to TryCatchStatement (set to true in normal cases), - set clear_pending_message to false for the TryCatchStatement used in iterator finalization - change full-codegen, turbofan, and the interpreter to emit the ClearPendingMessage call only when the flag is set, - replace 'throw' with '%ReThrow' in the iterator finalization code, thus reusing the (not-cleared) pending message R=littledan@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4875 LOG=n Review URL: https://codereview.chromium.org/1842953003 Cr-Commit-Position: refs/heads/master@{#35226}
-
- 31 Mar, 2016 1 commit
-
-
yangguo authored
R=bmeurer@chromium.org, cbruni@chromium.org, ulan@chromium.org BUG=chromium:124206,chromium:569811 LOG=N Review URL: https://codereview.chromium.org/1834633003 Cr-Commit-Position: refs/heads/master@{#35145}
-
- 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}
-
- 18 Mar, 2016 2 commits
-
-
mstarzinger authored
This removes the Isolate argument from the IsLiteralCompareUndefined predicate as it is no longer required to determine the answer. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1814823005 Cr-Commit-Position: refs/heads/master@{#34902}
-
mvstanton authored
Just sayin'. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1813913004 Cr-Commit-Position: refs/heads/master@{#34901}
-
- 17 Mar, 2016 1 commit
-
-
neis authored
If the variable is unallocated, say so. This CL also fixes the return value of FormatSlotNode. R=mvstanton@chromium.org TBR=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1806883003 Cr-Commit-Position: refs/heads/master@{#34846}
-
- 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 2 commits
-
-
adamk authored
This part of Scope has existed since V8's initial check in, but from what I can tell it's not required to implement "with". The only tests that depend upon it are tests of the debugger and the Scope mirrors, but the resulting test behavior after removing the bit still seems perfectly reasonable to me. In fact, with the included fix for scope name collection, the scope mirror is actually improved with this change. As a bi-product, this fixes the attached bug, about the contains_with bit having inconsistent values in some arrow function compilation scenarios. BUG=chromium:592353 LOG=n CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1804783002 Cr-Commit-Position: refs/heads/master@{#34802}
-
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}
-