- 13 May, 2019 1 commit
-
-
Joyee Cheung authored
Added null check when printing the brand with --print-ast. Bug: chromium:961507, chromium:961508 Original change's description: > [class] implement private method declarations > > This patch implements the declarations of private methods, the access > of private methods would be left to a future patch. > When a private methods declaration is encountered, we now: > > - Create a brand symbol during class evaluation and store it in the > context. > - Create the closures for the private methods > - Load the brand from the context and store it in the instance in the > constructor. > > Design: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit# > > Bug: v8:8330 > Change-Id: I2d695cbdc8a7367ddc7620d627b318f779d36150 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568708 > Commit-Queue: Joyee Cheung <joyee@igalia.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61387} Change-Id: I3bf465f70c27914c9ec19f3f59ae018b28c9a866 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605521 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#61459}
-
- 10 May, 2019 1 commit
-
-
Ross McIlroy authored
This reverts commit b9191bd3. Reason for revert: Clusterfuzz bugs BUG=chromium:961507,chromium:961508 Original change's description: > [class] implement private method declarations > > This patch implements the declarations of private methods, the access > of private methods would be left to a future patch. > When a private methods declaration is encountered, we now: > > - Create a brand symbol during class evaluation and store it in the > context. > - Create the closures for the private methods > - Load the brand from the context and store it in the instance in the > constructor. > > Design: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit# > > Bug: v8:8330 > Change-Id: I2d695cbdc8a7367ddc7620d627b318f779d36150 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568708 > Commit-Queue: Joyee Cheung <joyee@igalia.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61387} TBR=rmcilroy@chromium.org,gsathya@chromium.org,verwaest@chromium.org,joyee@igalia.com Change-Id: I429bbe8af9f94598de132814aa2c3ab9fa69b986 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8330 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605730 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61406}
-
- 09 May, 2019 1 commit
-
-
Joyee Cheung authored
This patch implements the declarations of private methods, the access of private methods would be left to a future patch. When a private methods declaration is encountered, we now: - Create a brand symbol during class evaluation and store it in the context. - Create the closures for the private methods - Load the brand from the context and store it in the instance in the constructor. Design: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit# Bug: v8:8330 Change-Id: I2d695cbdc8a7367ddc7620d627b318f779d36150 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568708 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#61387}
-
- 15 Apr, 2019 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit f4a747b7. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite%20-%20debug/3001 Original change's description: > [parser] Skip TDZ Checks in more cases of let and const > > The parser can now skip TDZ checks for cases when a reference is in, > or nested in, a scope that's both a sibling of the declaration and > created by a function expression. > > Bug: v8:7331 > Change-Id: Ia9748b5a8faa3037873efe5081837f5d0aa74115 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1542042 > Commit-Queue: Suraj Sharma <surshar@microsoft.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60853} TBR=adamk@chromium.org,verwaest@chromium.org,surshar@microsoft.com Change-Id: Iaa34b1f7cafcc0e77cd7cc20372885b1904bd827 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7331 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568078Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#60854}
-
Suraj Sharma authored
The parser can now skip TDZ checks for cases when a reference is in, or nested in, a scope that's both a sibling of the declaration and created by a function expression. Bug: v8:7331 Change-Id: Ia9748b5a8faa3037873efe5081837f5d0aa74115 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1542042 Commit-Queue: Suraj Sharma <surshar@microsoft.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60853}
-
- 09 Apr, 2019 1 commit
-
-
Joyee Cheung authored
- Add a new ClassScope for block scopes created for classes. - Add a VariableMap in the class scope for private name resolution, and a separate UnresolvedList for private names that will be resolved only using ClassScopes. These are stored in RareData and will only be allocated when there are private name declaration or access in the class. Design: https://docs.google.com/document/d/1l-D70uaHzXU8QVgQZ3ACikb3FLO6LTAfQVdGDXsh5mw/edit?usp=sharing TBR: hpayer@chromium.org Bug: v8:8330 Bug: v8:7468 Change-Id: I78191fc075f7f195f6c56c959773c382346cce8a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1488271 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#60726}
-
- 03 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I45f85807132fc9278e90b4cfc7f0dc8326870dfe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541046 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60612}
-
- 26 Feb, 2019 1 commit
-
-
Sigurd Schneider authored
Change-Id: I4bd02bdb68727b6242b0fe4b81fd522813b13f39 Bug: v8:8834 Reviewed-on: https://chromium-review.googlesource.com/c/1488755Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59875}
-
- 20 Feb, 2019 1 commit
-
-
Georg Neis authored
... as it can be expensive and there are no users of it anymore (we just read the information directly from ModuleInfo instead). Bug: v8:8847 Change-Id: I30a3bec186fbdea3821979e642b27b3b827309ce Reviewed-on: https://chromium-review.googlesource.com/c/1477220Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59718}
-
- 06 Feb, 2019 2 commits
-
-
Toon Verwaest authored
Otherwise preparsed variables will cause unnecessary dynamic variable allocation, which is especially bad when we're preparsing top-level functions with references to other global variables. Change-Id: I2fa17dae8c1cc5264a26ddc8b8868de1d791b0ac Reviewed-on: https://chromium-review.googlesource.com/c/1456040 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#59420}
-
Toon Verwaest authored
"this" is a very common expression. By using a single ThisExpression object we can both avoid allocating many unnecessary VariableProxies and specialize the resolution of this since we know where it's declared up-front. This also avoids having to special-case "this" reference handling in the paths that would behave differently for "this" than for regular references; e.g., with-scopes. The tricky pieces are due to DebugEvaluate and this/super() used as default parameters of arrow functions. In the former case we replace the WITH_SCOPE with FUNCTION_SCOPE so that we make sure that "this" is intercepted, and still rely on regular dynamic variable lookup. Arrow functions are dealt with by marking "this" use in ArrowHeadParsingScopes. If the parenthesized expression ends up being an arrow function, we force context allocate on the outer scope (and mark "has_this_reference" on the FUNCTION_SCOPE so DebugEvaluate in the arrow function can expose "this"). The CL also removes the now unused ThisFunction AST node. Change-Id: I0ca38ab92ff58c2f731e07db2fbe91df901681ef Reviewed-on: https://chromium-review.googlesource.com/c/1448313Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59393}
-
- 31 Jan, 2019 1 commit
-
-
Camillo Bruni authored
Drive-by-fix: - Inline Scope::num_parameters - Provide inlineable DataGatheringScope destructor precheck Change-Id: I337a79e0d5cf0f26c526e2ac53de8aa632d86c53 Reviewed-on: https://chromium-review.googlesource.com/c/1445879 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59253}
-
- 28 Jan, 2019 2 commits
-
-
Toon Verwaest authored
Change-Id: I8971d1e2ab47599bba4db8cac8631bcf39058593 Reviewed-on: https://chromium-review.googlesource.com/c/1436024Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59128}
-
Camillo Bruni authored
- Dehandlify ScopeInfo::ContextSlotIndex - Dehandlify ScriptContextTable::Lookup - Introduce function-kind.h with range-based helper methods - Spread usage of Scope::is_script_scope and friends Change-Id: I8ed1d82cc5bb9ea3fce856e16e9eafe194fb57ba Reviewed-on: https://chromium-review.googlesource.com/c/1430100Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59120}
-
- 25 Jan, 2019 2 commits
-
-
Toon Verwaest authored
Change-Id: I83dc3bed644361be1b94063daefd890b10ba50cd Reviewed-on: https://chromium-review.googlesource.com/c/1433772 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#59095}
-
Leszek Swirski authored
Declare Variables with a name and position, rather than by passing through a VariableProxy. This allows us to not create dummy proxies for things like function declarations, and allows us to consider those declarations unused. As a side-effect, we also have to check if a variable is unused in the bytecode generator (as it will no longer be allocated), and we end up skip generating code/SFIs for dead variables/functions. Change-Id: I4c2c872473f23e124f9456b4b92f87159658f8e0 Reviewed-on: https://chromium-review.googlesource.com/c/1414916 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59088}
-
- 23 Jan, 2019 1 commit
-
-
Camillo Bruni authored
- Inline single-call-site functions - Pull out pre-check from AllocateVariablesRecursively Change-Id: Ieceaf2d5b3ef6902b293d09e6fa63e58e60f3607 Reviewed-on: https://chromium-review.googlesource.com/c/1426696Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59025}
-
- 22 Jan, 2019 1 commit
-
-
Dan Elphick authored
This prevents the bytecode generator generating loads that look for extensions in the global context, which can never succeed and means that lazy and eager bytecode compilation will match. Bug: v8:8510 Change-Id: I51dca62b5d1ee34f8dea82260cf27295ddf427d9 Reviewed-on: https://chromium-review.googlesource.com/c/1425520Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#58983}
-
- 21 Jan, 2019 2 commits
-
-
Toon Verwaest authored
Walk the VariableMap instead of the ast. Change-Id: I03ee9145230bcbfe04c5e31dc8d8b3a98a00a4be Reviewed-on: https://chromium-review.googlesource.com/c/1424865 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58968}
-
Toon Verwaest authored
Use variable tracking from ExpressionScopes rather than the PatternRewriter and PreParserExpression::variables_ to declare variables. We only figure out that variables are non-simple parameters once we see the first non-simple parameter. This still uses the pattern rewriter to make variables non-simple (kLet instead of kVar). Change-Id: I4a4ee4852d667c26806bb24896722cfea3e093f2 Reviewed-on: https://chromium-review.googlesource.com/c/1417630Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58954}
-
- 18 Jan, 2019 1 commit
-
-
Camillo Bruni authored
By using a shared byte buffer on the preparser we can drastically reduce the number of ZoneChunkLists. Each PreparseDataBuilder now explicitly keeps track of all inner builders/functions and writes out the data in consecutive order. Change-Id: I0aada118d869b150108c1f633d9960474ad2f9a1 Reviewed-on: https://chromium-review.googlesource.com/c/1411600 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58926}
-
- 16 Jan, 2019 2 commits
-
-
Toon Verwaest authored
Change-Id: I9195c7ffdc4b841f14701662527c97c9698bd472 Reviewed-on: https://chromium-review.googlesource.com/c/1411888 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58859}
-
Leszek Swirski authored
Storing a VariableProxy in declarations means that a declaration and initialisation assignment are tightly coupled to use the same var. In particular, this means that Var declarations in with scopes have to clone the VariableProxy to split the declaration and initializer LHS lookup. This patch changes declarations to point directly to the Variable, not the VariableProxy. This will allow future refactoring to decouple declarations and initialisations. Change-Id: I0baa77bfd12fe175f9521d292740d7d712cffd37 Reviewed-on: https://chromium-review.googlesource.com/c/1406683Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58843}
-
- 15 Jan, 2019 1 commit
-
-
Toon Verwaest authored
A sloppy function in a block scope implicitily creates a var in the outer declaration scope if it's not blocked. The assignment created reads the local lexical declaration for the function. The reference introduced automatically takes part in NeedsHoleCheck, requiring the reference to have a valid position. Since the assignment will happen after the local declaration, we give the end_position() of the closure as the position of the reference, so hole checks can be omitted. Bug: chromium:917755 Change-Id: Iee0e042b2463f97f05075f9eec09dac8c6eaf539 Reviewed-on: https://chromium-review.googlesource.com/c/1408991Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58823}
-
- 10 Jan, 2019 1 commit
-
-
Toon Verwaest authored
This will make it easier to separate out parameter declaration from other other parameter scope information tracking. Change-Id: I8712dd7fc589c84bc1e1a1eab9038af6047b21cd Reviewed-on: https://chromium-review.googlesource.com/c/1403118 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58698}
-
- 09 Jan, 2019 2 commits
-
-
Adam Klein authored
Change-Id: I5b2ec3e8b0d2882465b33fedf62a6eac8f952f93 Reviewed-on: https://chromium-review.googlesource.com/c/1387965Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#58679}
-
Camillo Bruni authored
- Add DataGatheringScope::AddSkippableFunction - Rename preparsed_scope_data_builder to preparse_data_builder Change-Id: Ic882de638bed91a6ca4716f88db859410f1450b8 Reviewed-on: https://chromium-review.googlesource.com/c/1400846Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58673}
-
- 08 Jan, 2019 1 commit
-
-
Toon Verwaest authored
Previously we'd always push variable proxies into the unresolved list of the current scope, and possibly delete them from the list later in case they end up being declarations. If variables become assigned, there were two ways to mark them as such: The preparser would marked the variables tracked on the PreParserExpression, and the parser would traverse the LHS AST to find and mark all variables. After this CL, if the scope already knows it's tracking declarations, the variables are never added to the unresolved list in the first place. If the scope is ambigous, it tracks the variable proxies on the side and only adds them to the unresolved list if they end up being references rather than declarations. The same list is now used to bulk mark all LHS variables as assigned; uniformely for both the parser and the preparser. In a next step we'll also use the scope to create declarations. That way we can stop tracking variables_ on PreParserExpression altogether. Change-Id: I6ada37006cc2e066731f29cd4ea314550fc7959f Reviewed-on: https://chromium-review.googlesource.com/c/1397669 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#58629}
-
- 07 Jan, 2019 2 commits
-
-
Camillo Bruni authored
We plan to store additional information that is not related to scopes. The new name will reflect this fact better. Change-Id: I4ddb1017bc255e6ad271e4448848ed630f367d5b Reviewed-on: https://chromium-review.googlesource.com/c/1388538 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58591}
-
Toon Verwaest authored
This simplifies NextArrowFunctionInfo, allows us to Scope::Snapshot::Reparent directly rather than moving it, and allows us to skip reparenting in the simple parameter arrow function cases. This is a reland of https://chromium-review.googlesource.com/c/v8/v8/+/1397664, simply splitting out the arrow-function-name-inferring part. Change-Id: I640d911a9607edc3bbb0e5ff3bf992094e4159e4 Reviewed-on: https://chromium-review.googlesource.com/c/1397701Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58570}
-
- 21 Dec, 2018 2 commits
-
-
Maya Lekova authored
This reverts commit 3411e7c3. Reason for revert: Breaks test expecations - https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_rel_ng/260731 Original change's description: > [parser] Create arrow function scopes while parsing the head > > This simplifies NextArrowFunctionInfo, allows us to Scope::Snapshot::Reparent > directly rather than moving it, and allows us to skip reparenting in the simple > parameter arrow function cases. > > This CL additionally fixes arrow function name inferring. > > Change-Id: Ie3e5ea778f3d7b84b2a10d4f4ff73931cfc9384a > Reviewed-on: https://chromium-review.googlesource.com/c/1386147 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58405} TBR=ishell@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I8f31b96f844f0673364bf435fa6c809e40d62fa3 Reviewed-on: https://chromium-review.googlesource.com/c/1388541Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#58446}
-
Toon Verwaest authored
Change-Id: I9446a73bb47b11e2d161a4678638b7618ce52b9a Reviewed-on: https://chromium-review.googlesource.com/c/1387490Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58427}
-
- 20 Dec, 2018 1 commit
-
-
Toon Verwaest authored
This simplifies NextArrowFunctionInfo, allows us to Scope::Snapshot::Reparent directly rather than moving it, and allows us to skip reparenting in the simple parameter arrow function cases. This CL additionally fixes arrow function name inferring. Change-Id: Ie3e5ea778f3d7b84b2a10d4f4ff73931cfc9384a Reviewed-on: https://chromium-review.googlesource.com/c/1386147Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58405}
-
- 19 Dec, 2018 2 commits
-
-
Toon Verwaest authored
Now we just check for each variable declared in the parameter scope whether it occurs as a lexical variable in the body scope. This way the preparser will also identify them. Bug: v8:2728, v8:5064 Change-Id: I9fd96590fa431de0656c85295fd31af9b36f2e32 Reviewed-on: https://chromium-review.googlesource.com/c/1384225Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58375}
-
Toon Verwaest authored
- Directly declares the special catch variable from the parser-base. - Tracks Scope on PreParserBlock and finds conflicting lexical declarations by simply walking the VariableMap of the block inserted for the pattern; or the catch variable in case of identifier. - This also enables throwing errors for duplicate let in the preparser. We may have to back that out if it breaks something. Bug: v8:2728, v8:7828 Change-Id: Id2eea62062533eb99cd6670c42a4b1da87139008 Reviewed-on: https://chromium-review.googlesource.com/c/1382095Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58353}
-
- 17 Dec, 2018 1 commit
-
-
Camillo Bruni authored
Parser::MaybeResetCharacterStream calls Scope::ContainsAsmModule which recursively checks whether a Scope is an asm module or any of its sub-scopes. This is sub-optimal for deeply nested scopes and many functions which do not contain any asm modules. Drive-by-fix: - rename Scope::asm_module to Scope::is_asm_module Change-Id: I922270c608b54c6525f0672ead4aca90f57a6551 Reviewed-on: https://chromium-review.googlesource.com/c/1360636Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58288}
-
- 12 Dec, 2018 1 commit
-
-
Mythri authored
Currently, the runtime IC functions deduce the IC kind and the language mode from the feedback slot kind. To support feedback free execution (for V8 lite mode and lazy allocation of feedback vectors) we need to infer the IC kind even when feedback vectors are not present. To be able to infer the language mode without feedback vectors, this cl forces context allocation in cases where we raise the language mode in the middle of a function. The language mode is the stricter of the language mode on the SFI and the language mode of the current context. This cl updates the bytecode handlers to check for valid feedback vectors and to call into runtime if the feedback vector is not allocated. It also adds new runtime functions to be able to infer the IC kind when there is no feedback vector. Most of the builtins and handlers remain unchanged because they are only used when feedback vector is present. Bug: v8:8394 Change-Id: I1f77740c0d68ddaa0de076597f5f6bcb2e966d70 Reviewed-on: https://chromium-review.googlesource.com/c/1358516 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58191}
-
- 04 Dec, 2018 1 commit
-
-
Camillo Bruni authored
Drive-by-fixes: - Rename RestoreData to RestoreDataForScope - Move Scope's private variable declaration to after functions Change-Id: I349b2fc05cd94d6d7a0745b28b4e66b898b5e147 Reviewed-on: https://chromium-review.googlesource.com/c/1358517Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58010}
-
- 29 Nov, 2018 1 commit
-
-
Toon Verwaest authored
|scope_snapshot_| might not have been cleared if there was a parser error between setting the snapshot and consuming it. Explicitly clear it at the end of parsing for that case. Otherwise Scope::Snapshot's destructor will possibly write into the already freed zone. Bug: chromium:909976 Change-Id: I8469d11f04e7f71528be5cba5663c652cd7eacb2 Reviewed-on: https://chromium-review.googlesource.com/c/1354880 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#57938}
-
- 27 Nov, 2018 1 commit
-
-
Toon Verwaest authored
That reduces the overhead of ParseAssignmentExpression at the cost of a few more branches in the possible arrow head paths. This also fixes the case where an outer scope of an arrow function didn't call eval but a parameter initializer does. Previously the outer scope was also marked as calling eval, causing worse performance. (Unlikely to happen though.) Change-Id: I5263ef342f14e97372f5037fa659f32ec2ad6d34 Reviewed-on: https://chromium-review.googlesource.com/c/1352275 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57881}
-