- 09 Oct, 2018 1 commit
-
-
Toon Verwaest authored
This flag has been on by default for some time. Once https://chromium-review.googlesource.com/c/v8/v8/+/1270578 lands we need it to be able to find duplicate parameters (to be spec-compliant). Change-Id: I222023d7cd955127d3ecca42283b37063e962c58 Reviewed-on: https://chromium-review.googlesource.com/c/1270581 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56468}
-
- 20 Sep, 2018 1 commit
-
-
Ross McIlroy authored
Refactors the CompilerDispatcher to be able to enqueue eager inner functions for off-thread compilation during top-level compilation of a script. Unoptimized compile jobs are simplified to only have two phases - compile and finalization. Only finalization requires heap access (and therefore needs to be run on the main thread). The change also introduces a requirement to register a SFI with a given compile job after that job is posted, this is due to the fact that an SFI won't necessarily exist at the point the job is posted, but is created later when top-level compile is being finalized. Logic in the compile dispatcher is update to deal with the fact that a job may not be able to progress if it doesn't yet have an associated SFI registered with it. BUG=v8:8041 Change-Id: I66cccd626136738304a7cab0e501fc65cf342514 Reviewed-on: https://chromium-review.googlesource.com/1215782 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56088}
-
- 07 Sep, 2018 2 commits
-
-
Ross McIlroy authored
Splits PreParsedScopeDataBuilder out of ProducedPreParserScopeData to make the split between building PreParsedScopeData and using already build PreParserScopeData more explicit. BUG=v8:8041 Change-Id: Iab42cab84c247152c14ac39f3136f985753160ec Reviewed-on: https://chromium-review.googlesource.com/1202104 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55718}
-
Ross McIlroy authored
Adds support for zone allocated (off-heap) ConsumedPreParsingScopeData to enable worker-thread access to PreParsingScopeData during parallel IIFE compile tasks. In order to avoid code-duplication, a templated BaseConsumedPreParsingScopeData is added which implements the logic for decoding the bytestream into scope data. Two implementations of this base class are instantiated for each of the underlying serialized scope date: - ZoneConsumedPreParsedScopeData for exposing ZonePreParsedScopeData - OnHeapConsumedPreParsedScopeData for exposing on-heap PreParsedScopeData The interface for each of these classes is the ConsumedPreParsingScopeData, which exposes the methods required by the parser to deserialize the required data. As a side-cleanup, moved Ucs2CharLength and Utf8LengthHelper implementations to cc file so that we don't get a linker error if one of them are unused by the cc file including the header. BUG=v8:8041 Change-Id: Id502312d32fe4a9ddb6f5d2d9d3e3a9d30b9b27d Reviewed-on: https://chromium-review.googlesource.com/1199462 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55711}
-
- 30 Jul, 2018 1 commit
-
-
Peter Marshall authored
Fixes: src/parsing/parse-info.h src/parsing/preparsed-scope-data.h src/profiler/heap-profiler.h src/profiler/heap-snapshot-generator.h src/profiler/heap-snapshot-generator-inl.h' src/property.h src/prototype.h src/prototype-inl.h Bug: v8:7754,v8:7490,v8:7965 Change-Id: Iba14292cdfbbaf29d5b989c16d579a1ee0edcc25 Reviewed-on: https://chromium-review.googlesource.com/1154967 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54787}
-
- 18 Jul, 2018 1 commit
-
-
Dan Elphick authored
Strictly speaking there are some left in api.cc, but they are in deprecated functions with non-deprecated alternatives. Apart from changes made using tooling, this also modifies FieldType::AsClass to return Map* rather than Handle<Map> and converts its call sites to create the Handle when they need it - currently several sites immediately dereference the Handle. Also marks WasmDebugInfo as NeverReadOnlySpaceObject so GetIsolate and GetHeap remain usable. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I7ea5048f97f140c757f651712b8c33a5c7e0ebc1 Reviewed-on: https://chromium-review.googlesource.com/1140302Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54513}
-
- 11 Jul, 2018 2 commits
-
-
Leszek Swirski authored
Move some of PreParsedScopeData's santity checks, such as the magic value separating skippable function data from scope data, to be debug only, to save memory. Start position of inner skippable functions is still kept, because it's too good at catching bugs, but we may want to remove it in the future as well. Relanding unchanged after the (unrelated) flake it exposed is fixed in: https://chromium-review.googlesource.com/1131503 Bug: chromium:818642 Change-Id: Id1d9fe757875cd05ea9a92b41e7256c3ee86fc8e Reviewed-on: https://chromium-review.googlesource.com/1131505 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54380}
-
Leszek Swirski authored
Make PreParsedScopeData a new array-like instance type, which holds its child data inline, rather than indirecting to a FixedArray. Should save one map word per PreParsedScopeData. Reland of https://chromium-review.googlesource.com/1127055, adding padding clearing to keep MSAN happy. TBR=jarin@chromium.org,marja@chromium.org,ulan@chromium.org Bug: chromium:818642 Change-Id: I536db452047959e75d5116ddded4f511d05a04d9 Reviewed-on: https://chromium-review.googlesource.com/1131512Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54374}
-
- 10 Jul, 2018 2 commits
-
-
Leszek Swirski authored
This reverts commit a9fed96c. Reason for revert: Serializer test msan failures Original change's description: > [parser] Make PreParsedScopeData array-like > > Make PreParsedScopeData a new array-like instance type, which holds its > child data inline, rather than indirecting to a FixedArray. Should save > one map word per PreParsedScopeData. > > TBR=jarin@chromium.org > > Bug: chromium:818642 > Change-Id: I72dc21160ed9781ad12b18559468f6cce56886fa > Reviewed-on: https://chromium-review.googlesource.com/1127055 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54349} TBR=ulan@chromium.org,marja@chromium.org,jarin@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: If2f39379bb0bdfca7d36ec1a3ec738519481aa4e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1131234Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54354}
-
Leszek Swirski authored
Make PreParsedScopeData a new array-like instance type, which holds its child data inline, rather than indirecting to a FixedArray. Should save one map word per PreParsedScopeData. TBR=jarin@chromium.org Bug: chromium:818642 Change-Id: I72dc21160ed9781ad12b18559468f6cce56886fa Reviewed-on: https://chromium-review.googlesource.com/1127055Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54349}
-
- 06 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This reverts commit f45045cc. Reason for revert: <INSERT REASONING HERE> Original change's description: > [parser] Move some PPSD sanity checks to debug > > Move some of PreParsedScopeData's santity checks, such as the magic > value separating skippable function data from scope data, to be debug > only, to save memory. > > Start position of inner skippable functions is still kept, because it's > too good at catching bugs, but we may want to remove it in the future > as well. > > Bug: chromium:818642 > Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf > Reviewed-on: https://chromium-review.googlesource.com/1127046 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54263} TBR=marja@chromium.org,leszeks@chromium.org Change-Id: I15ceedd66d9ecb66cf65f5834d09975b41d3ed27 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1127859Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54290}
-
- 05 Jul, 2018 1 commit
-
-
Leszek Swirski authored
Move some of PreParsedScopeData's santity checks, such as the magic value separating skippable function data from scope data, to be debug only, to save memory. Start position of inner skippable functions is still kept, because it's too good at catching bugs, but we may want to remove it in the future as well. Bug: chromium:818642 Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf Reviewed-on: https://chromium-review.googlesource.com/1127046 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54263}
-
- 02 Jul, 2018 1 commit
-
-
Dan Elphick authored
Pass Isolate to ConsumedPreParsedScopeData::SetData (guaranteed to be called on main thread) and use it to create the handle in ConsumedPreParsedScopeData::GetDataForSkippableFunction, rather than calling GetIsolate. Bug: v8:7786 Change-Id: Ibd632bb57f35a921f37c620d77dd6dfdb1f092c6 Reviewed-on: https://chromium-review.googlesource.com/1088703 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54138}
-
- 26 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Remove the one-argument Handle constructor and "handle" factory method, replacing them with Isolates where available and GetIsolate() methods otherwise. TBR=verwaest@chromium.org Bug: v8:7786 Change-Id: I8ee92ef727c05382c984a3e4c290198d0b312619 Reviewed-on: https://chromium-review.googlesource.com/1113542Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54025}
-
- 30 Apr, 2018 1 commit
-
-
Predrag Rudic authored
Fix failing test mjsunit/skipping-inner-functions on big endian platforms. Change-Id: If35c5a663a296fab6ad6011cf0a101133ec6a237 Reviewed-on: https://chromium-review.googlesource.com/1029954 Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52875}
-
- 15 Feb, 2018 1 commit
-
-
Marja Hölttä authored
Apparently it can happen that the variable to which we're restoring to has a two-byte name corresponding to the one-byte name we expect. Modify the debug-mode name check to allow this. BUG=v8:7428 Change-Id: I94c56a4b2de3c58b50246fecaead332b0f9679b4 Reviewed-on: https://chromium-review.googlesource.com/911801Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#51304}
-
- 14 Feb, 2018 1 commit
-
-
Camillo Bruni authored
This CL introduces the FailureMessage and StackTraceFailureMessage objects. They are force to be stack allocated and their first and last member contain marker values. With the help of these markers we can easily extract the stored information in external tools such as grokdump and crash. Change-Id: Iec4f5195eec5a2bf08e1f674c9ced13d2345f030 Reviewed-on: https://chromium-review.googlesource.com/915067Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51295}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 07 Nov, 2017 1 commit
-
-
Marja Hölttä authored
ZoneDeque is memory-inefficient, see https://bugs.chromium.org/p/chromium/issues/detail?id=674287 As a downside, ZoneChunkList is not const correct, see https: //bugs.chromium.org/p/v8/issues/detail?id=6473 . Bug: v8:5516 Change-Id: I2db15006afd78aa932ab831cd9c0cff659229321 Reviewed-on: https://chromium-review.googlesource.com/750782Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49182}
-
- 25 Oct, 2017 1 commit
-
-
Marja Hölttä authored
- Make it possible to store quarter-bytes instead of full bytes. - Don't store is_used; it can be recovered correctly based on the actual full parse (when a lazy function is eventually called) and has_forced_scope_allocation. - With the is_used change, the old testing approach (which compared a scope for which we didn't do scope allocation to the baseline) no longer made sense. Replaced it with a new testing approach, which is also closer to the actual usage. - First version (reverted): https://chromium-review.googlesource.com/725422 BUG=v8:5516 Change-Id: I1468af6670b689a104bd867377caa1d236070820 Reviewed-on: https://chromium-review.googlesource.com/733123Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48903}
-
- 23 Oct, 2017 2 commits
-
-
Marja Hölttä authored
This reverts commit 97ead433. Reason for revert: makes the PreParserScopeAnalysis test much slower. Original change's description: > [parser] Skipping inner funcs: Use less memory for variables. > > - Make it possible to store quarter-bytes instead of full bytes. > > - Don't store is_used; it can be recovered correctly based on the actual full > parse (when a lazy function is eventually called) and > has_forced_scope_allocation. > > - With the is_used change, the old testing approach (which compared a scope for > which we didn't do scope allocation to the baseline) no longer made > sense. Replaced it with a new testing approach, which is also closer to the > actual usage. > > BUG=v8:5516 > > Change-Id: I02bac24e482126689dcdbabe8b3a04977be29b0c > Reviewed-on: https://chromium-review.googlesource.com/725422 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48828} TBR=marja@chromium.org,verwaest@chromium.org Change-Id: I8cb87bcd55462b1cef4444dabb5cbfa2ecb24c7c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5516 Reviewed-on: https://chromium-review.googlesource.com/732878Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48829}
-
Marja Hölttä authored
- Make it possible to store quarter-bytes instead of full bytes. - Don't store is_used; it can be recovered correctly based on the actual full parse (when a lazy function is eventually called) and has_forced_scope_allocation. - With the is_used change, the old testing approach (which compared a scope for which we didn't do scope allocation to the baseline) no longer made sense. Replaced it with a new testing approach, which is also closer to the actual usage. BUG=v8:5516 Change-Id: I02bac24e482126689dcdbabe8b3a04977be29b0c Reviewed-on: https://chromium-review.googlesource.com/725422 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#48828}
-
- 19 Oct, 2017 1 commit
-
-
Marja Hölttä authored
We don't need to save any data for top-level leaf funcs (they contain no skippable funcs), so we don't need scope analysis for them either. BUG=v8:5516 Change-Id: I75700838a3df2f19da559145611c99e2c7ffd088 Reviewed-on: https://chromium-review.googlesource.com/691976 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#48746}
-
- 17 Oct, 2017 1 commit
-
-
Adam Klein authored
Inner functions which called eval, and were the kind of functions that can use `super`, were erroneously not marked as "uses_super_property", leading to downstream crashes when the runtime tried to load the [[HomeObject]] from them. This patch eliminates the public Scope::uses_super_property() API and ensures that callers always call Scope::NeedsHomeObject() instead. This is a minimal fix designed for easy merging; it's likely that in the long run we should remove most mentions of "uses super property" and replace them with "needs home object" for clarity. Bug: v8:5516, chromium:774994 Change-Id: Id269dd33e35bd40f6b59a3d3e19330687afa64f8 Reviewed-on: https://chromium-review.googlesource.com/721879Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48619}
-
- 16 Oct, 2017 2 commits
-
-
Clemens Hammacher authored
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an embedded comparison. This gives better error messages and also does the right comparison for signed/unsigned mismatches. This will allow us to reenable the readability/check cpplint check. R=marja@chromium.org Bug: v8:6837, v8:6921 Change-Id: I17cf5cbbac3d2992c3b3588cc66e8564982453b6 Reviewed-on: https://chromium-review.googlesource.com/681355Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48596}
-
Leszek Swirski authored
Bug: v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3294568a550b829b0ec90147a4cdaefe169bb7cb Reviewed-on: https://chromium-review.googlesource.com/718206Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#48587}
-
- 12 Oct, 2017 1 commit
-
-
Marja Hölttä authored
Parser creates a FunctionState for default ctors, which affects the next_function_is_likely_called logic. PreParser needs to match that logic, so that Parser and PreParser agree about which functions are skippable. BUG=v8:5515, chromium:773576 Change-Id: I96cb6f5aa68e74389a863355f70a34693a2d1329 Reviewed-on: https://chromium-review.googlesource.com/712579 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48511}
-
- 29 Sep, 2017 1 commit
-
-
Marja Hölttä authored
We were unnecessarily storing everything as uint32_t, even though many items in the preparsed scope data can be stored as uint8_t. This CL also adds an (internal) API which abstracts away the actual data storing, so the backing store can be made even more efficient (e.g., use only 1-3 bytes for some uint32_t values, if they fit) without affecting other parts of the code. BUG=v8:5516,chromium:762492 Change-Id: I7cd4d91dc11f87f8aec9c7584044a6f2a59b73ba Reviewed-on: https://chromium-review.googlesource.com/684182 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#48231}
-
- 21 Sep, 2017 1 commit
-
-
Marja Hölttä authored
There are some mysterious, unreproducible CHECK failures (inconsistent data). Add more information onto the stack (and thus, to minidumps) for debugging them. BUG=v8:5516,chromium:766693 Change-Id: Ic1ebc3036957ede4e3e1c1d287479897e54e40ed Reviewed-on: https://chromium-review.googlesource.com/677294Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48111}
-
- 16 Aug, 2017 1 commit
-
-
Marja Hölttä authored
Makes ClusterFuzz start fuzzing with the flag on. BUG=v8:5516 Change-Id: Ia80f7d22f12fe25efb226102a896e8b0e3537947 Reviewed-on: https://chromium-review.googlesource.com/610000 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47366}
-
- 09 Aug, 2017 1 commit
-
-
Adam Klein authored
There are two reasons for Scopes to need information about eval calls inside them: - Eval in a scope, or any of its inner scopes, turns off a bunch of scope analysis optimizations (e.g., all variables have to be treated as "used" and context-allocated). - Eval in a sloppy declaration scope means allows runtime addition of var declarations. This patch aims to make the code better-reflect this reality. It's meant as a pure cleanup, with no expected change in behavior. Change-Id: I744c5051bb7a90b11420930e9596e5d6c35eb440 Reviewed-on: https://chromium-review.googlesource.com/602848 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47257}
-
- 04 Aug, 2017 1 commit
-
-
Marja Hölttä authored
In some cases, PreParser cannot replicate the Scope structure created by Parser. It happens esp. with arrow function parameters, since the relevant information is already lost by the time we figure out it's an arrow function. In these cases, PreParser should bail out of trying to create data for skipping inner functions. Implementation notes: - The arrow function case is more fundamental; the non-arrow case could be hacked together somehow if we implemented tracking is_simple for each param separately; but now that it's possible to bail out consistently from both cases, I don't think the is_simple complication is worth it. - The added mjsunit test cases are based on the test262 test cases which exposed the problem. - cctest/preparser/PreParserScopeAnalysis was exercising similar cases, but the problem didn't show up because the function parameters didn't contain skippable functions. Those test cases have been repurposed for testing the bailout. - Extra precaution: the bailout tests are in a separate file, to guard from the bug that a bailout case results in bailing out of *all* data creation, which would make all skipping tests in the same file useless. BUG=v8:5516 Change-Id: I4324749a5ec602fa5d7dc27647ade0284a6842fe Reviewed-on: https://chromium-review.googlesource.com/599849Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47170}
-
- 03 Jul, 2017 1 commit
-
-
Marja Hölttä authored
(The test that catches the bug was test-bytecode-generator/LookupSlot) BUG=v8:5516 Change-Id: I00a02c5326b2a132383a9d72b5b894fade53bbf2 Reviewed-on: https://chromium-review.googlesource.com/558864 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46374}
-
- 30 Jun, 2017 1 commit
-
-
Marja Hölttä authored
This way, each lazy function needs to handle only the data relevant to itself. This reduced data handling overheads. Other changes: 1) Don't deserialize the data; once it's on the heap, it can stay there. Lazy function compilation is only done in the main thread. 2) Separate ProducedPreParsedScopeData and ConsumedPreParsedScopeData. It's clearer, because: - The data looks fundamentally different when we're producing it and when we're consuming it. - Cleanly separates the operations we can do in the "producing phase" and in the "consuming phase". Bug: v8:5516 Change-Id: I6985a6621f71b348a55155724765624b5d5f7c33 Reviewed-on: https://chromium-review.googlesource.com/528094 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46347}
-
- 22 Jun, 2017 3 commits
-
-
Marja Hölttä authored
In the failing case (see test), the loop variable (which should be context allocated) is in a hidden scope, so we need to save and restore data for hidden scopes too. The !is_hidden() check was overly limiting - NeedsScopeData already handles the "hidden leaf scope" case which is the one we want to avoid. (Btw, this also means that the previous assumption "variables in hidden scopes are not context allocated" was wrong.) BUG=v8:5516 Change-Id: I1c6116654b19ef0cfd64e8a743b46af683a9fcd5 Reviewed-on: https://chromium-review.googlesource.com/544938 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46136}
-
Marja Hölttä authored
The DCHECKs were checking that the data we stored about a Scope (param count etc) matches the Scope where we're restoring the data to. But for skipped functions, this data is not in the Scope, so it doesn't make sense to DCHECK them. BUG=v8:5516 Change-Id: I6ad66ec4dd5fe31da52c0d5b533b336e3956ee1d Reviewed-on: https://chromium-review.googlesource.com/544300 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46134}
-
Marja Hölttä authored
let f = function g() { ... } declares "g" inside the function. This CL makes the preparser declare it too, and saves + restores the scope data for it. BUG=v8:5516 Change-Id: Id4c64f446d30f5252038cfb0f0f473b85ba24a9b Reviewed-on: https://chromium-review.googlesource.com/544816 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46133}
-
- 31 May, 2017 1 commit
-
-
Marja Hölttä authored
- Enable aggressive lazy inner funcs (make non-declaration funcs lazy, ie let f = function() { ... } when --experimental-preparser-scope-analysis is on. - Turn on variable tracking for lazy top level functions: this makes their inner functions skippable. - Test fix for an testing bug uncovered by this work: when restoring the data for the relevant scope, don't assume it's the outermost scope for which we have data. - Fix: if we abort lazy parsing a function, we shouldn't produce any data for it. BUG=v8:5516 Change-Id: I0606fbabb5886dc57dbb53ab5f3fb894ff5d032e Reviewed-on: https://chromium-review.googlesource.com/518165Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45615}
-
- 29 May, 2017 1 commit
-
-
Marja Hölttä authored
For non-simple param lists, the parser first declares a TEMPORARY for each param, and then the named variables as locals. The TEMPORARY variables determine the parameter count. This CL makes the PreParser produce the same parameter count as the Parser. BUG=v8:5516 Change-Id: I8a794d6a8342145ab7934d922e2d69450d67b199 Reviewed-on: https://chromium-review.googlesource.com/517944 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45566}
-
- 17 May, 2017 1 commit
-
-
Marja Hölttä authored
Super calls need to refer to .this_function, .new.target and this, and super property references need to refer to .this_function and this, so that the is_used for those variables will be set and they will be allocated correctly. BUG=v8:5516 Change-Id: Idc58539fccad70c995e029051b59a67ea66bff91 Reviewed-on: https://chromium-review.googlesource.com/506094Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45376}
-