- 21 May, 2019 1 commit
-
-
Toon Verwaest authored
Change-Id: Ifd8734aa682e238de54284c74209d236c7ac824f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622110Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61699}
-
- 20 May, 2019 1 commit
-
-
Simon Zünd authored
This CL also removes "HasComplexElements" helpers on JSReceiver and NumberDictionary. Drive-by: Remove unused SmiLexicographicCompare runtime function. The C++ funtion is still used, but it is entered using a fast C call from Array#sort. Bug: v8:9183 Change-Id: Ibb5d54cca623486806587bc90506af8d97910dc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617929 Commit-Queue: Simon Zünd <szuend@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#61644}
-
- 15 May, 2019 1 commit
-
-
Toon Verwaest authored
Additionally pass WriteBarrierMode while building the object Change-Id: Ibc8ad592f822ee3b046406013cc36ae64f6b099b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613251Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61547}
-
- 14 May, 2019 2 commits
-
-
Sigurd Schneider authored
This annotation indicates that the class itself is not instantiated, and does not have its own instance type: The instance types that logically belong to the class are the instance types of the derived classes. Currently, we need the indication @dirtyInstantiatedAbstractClass for several classes that are used as both, abstract base classes and concrete classes. The prime example is JSObject which is the base for many other classes, and also serves as the class to allocate plain JSObjects. The annotation is purposefully ugly because in the future we should refactor code to make it unnecessary. Another annotation we introduce is @hasSameInstanceTypeAsParent, which indicates another design pattern that currently occurs in the code-base: Some Torque classes have the same instance types as their parent class, but rename some fields, or possibly have a different map. In such cases, the parent class is not abstract and the derived classes can be seen as refinements of this class (that, for example, narrows the type of a field). In the future, Torque should accomodate this pattern better, but at moment we are content with just indicating where it is used. Bug: v8:7793 Change-Id: I1892dcc7325250df75d80308bf3d767d6d43bcc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1607761 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61495}
-
Sigurd Schneider authored
This CL introduces the new suffix '-tq' for Torque generated files, and replaces the infix 'FromDSL' in type names with a prefix 'TorqueGenerated'. Change-Id: I1e90460cc0c666da6cf5017e8b3cb7c39c6ac668 Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609798 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61490}
-
- 10 May, 2019 1 commit
-
-
Dan Elphick authored
This is a reland of f2e65226 Nothing has changed but https://chromium-review.googlesource.com/c/v8/v8/+/1585269 has been rolled back due to v8:9234. Original change's description: > Reland "[compiler] Don't collect source positions for the top frame" > > Fixed crashes by adding missing call to EnsureSourcePositionsAvailable, > which requires clearing and restoring the pending exception. > > > While most source positions were not collected even throwing exceptions, > > the top frame still was always collected as it was used to initialize > > the JSMessageObject. This skips even that frame, by storing the > > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing > > it to lazily evaluate the actual source position. > > > > Also adds tests to test-api.cc that test each of the source position > > functions in isolation to ensure that they don't rely on previous > > invocations to call the source collection function. > > > > Since no source positions are now collected at the point when an > > exception is thrown, the mjsunit/stack-traces-overflow now passes again > > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the > > only failure). > > Bug: v8:8510 > Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61372} TBR=ulan@chromium.org Bug: v8:8510 Change-Id: Iaa9e376f90d10c0f25d1bcc352808363e4ea8b4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605946Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61418}
-
- 09 May, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit f2e65226. Reason for revert: Speculative revert, seems to break GC stress bot and block LKGR - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/25701 Original change's description: > Reland "[compiler] Don't collect source positions for the top frame" > > Fixed crashes by adding missing call to EnsureSourcePositionsAvailable, > which requires clearing and restoring the pending exception. > > > While most source positions were not collected even throwing exceptions, > > the top frame still was always collected as it was used to initialize > > the JSMessageObject. This skips even that frame, by storing the > > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing > > it to lazily evaluate the actual source position. > > > > Also adds tests to test-api.cc that test each of the source position > > functions in isolation to ensure that they don't rely on previous > > invocations to call the source collection function. > > > > Since no source positions are now collected at the point when an > > exception is thrown, the mjsunit/stack-traces-overflow now passes again > > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the > > only failure). > > Bug: v8:8510 > Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61372} TBR=ulan@chromium.org,rmcilroy@chromium.org,delphick@chromium.org Change-Id: Ie590df6c308b38836afc5d417d03d2a63260bcb2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8510 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1602692Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#61381}
-
Dan Elphick authored
Fixed crashes by adding missing call to EnsureSourcePositionsAvailable, which requires clearing and restoring the pending exception. > While most source positions were not collected even throwing exceptions, > the top frame still was always collected as it was used to initialize > the JSMessageObject. This skips even that frame, by storing the > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing > it to lazily evaluate the actual source position. > > Also adds tests to test-api.cc that test each of the source position > functions in isolation to ensure that they don't rely on previous > invocations to call the source collection function. > > Since no source positions are now collected at the point when an > exception is thrown, the mjsunit/stack-traces-overflow now passes again > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the > only failure). Bug: v8:8510 Change-Id: Ifa5fe31d3db34a6c6d6a9cef3d646ad620dabd81 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601270 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61372}
-
- 07 May, 2019 2 commits
-
-
Dan Elphick authored
This reverts commit 758700a7. Reason for revert: Broken Original change's description: > [compiler] Don't collect source positions for the top frame > > While most source positions were not collected even throwing exceptions, > the top frame still was always collected as it was used to initialize > the JSMessageObject. This skips even that frame, by storing the > SharedFunctionInfo and bytecode offset in the JSMessageObject allowing > it to lazily evaluate the actual source position. > > Also adds tests to test-api.cc that test each of the source position > functions in isolation to ensure that they don't rely on previous > invocations to call the source collection function. > > Since no source positions are now collected at the point when an > exception is thrown, the mjsunit/stack-traces-overflow now passes again > with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the > only failure). > > Bug: v8:8510 > Change-Id: Ic5382bdbab65cd8838f0c84b544fabb1a9109d13 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587385 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61271} TBR=ulan@chromium.org,rmcilroy@chromium.org,delphick@chromium.org Change-Id: I3ee0b5db5f8a1b3255f68070dc10d27d0e013048 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8510 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598758Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61273}
-
Dan Elphick authored
While most source positions were not collected even throwing exceptions, the top frame still was always collected as it was used to initialize the JSMessageObject. This skips even that frame, by storing the SharedFunctionInfo and bytecode offset in the JSMessageObject allowing it to lazily evaluate the actual source position. Also adds tests to test-api.cc that test each of the source position functions in isolation to ensure that they don't rely on previous invocations to call the source collection function. Since no source positions are now collected at the point when an exception is thrown, the mjsunit/stack-traces-overflow now passes again with the flag enabled. (cctest/test-cpu-profiler/Inlining2 is now the only failure). Bug: v8:8510 Change-Id: Ic5382bdbab65cd8838f0c84b544fabb1a9109d13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587385 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61271}
-
- 29 Apr, 2019 1 commit
-
-
Suraj Sharma authored
Converted JSGlobalObject, JSIteratorResult, JSLocale, JSDateTimeFormat, JSListFormat, JSNumberFormat, JSPluralRules, JSRelativeTimeFormat, JSSegmenter, JSAsyncFromSyncIterator to torque. Bug: v8:8952 Change-Id: Id912197054727815b481b2c683b93473bfcbd0c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1574491Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Suraj Sharma <surshar@microsoft.com> Cr-Commit-Position: refs/heads/master@{#61099}
-
- 16 Apr, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
Increase length of packed sealed array will create holes in packed array so transition to dictionary elements for now. Later we can consider transitioning to holey sealed array. Bug: chromium:952382 Change-Id: Ibe26ce56918859a114fccc1933f9c966c47c4112 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566968 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60884}
-
- 11 Apr, 2019 1 commit
-
-
Toon Verwaest authored
Previously we'd need to eagerly compile upon access to function.length for a lazy function. The preparser already computes function.length, however, so we can store that information in the already available preparse data. Change-Id: I19007c9db5839e8038291fb4433866303935f089 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564190 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60767}
-
- 10 Apr, 2019 2 commits
-
-
Simon Zünd authored
This reverts commit 8b917cd9. Reason for revert: Breaks the noi18n build. The header js-date-time-format.h expects i18n to be enabled. Original change's description: > [torque] Convert few class layout definitions to torque. > > Converted JSGlobalObject, JSIteratorResult, JSLocale, JSDateTimeFormat, > JSListFormat, JSNumberFormat, JSPluralRules, JSRelativeTimeFormat, > JSSegmenter, JSAsyncFromSyncIterator to torque. > > Bug: v8:8952 > Change-Id: I760a658c5bef7e12bc8f07b741245e9d1933164e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529262 > Commit-Queue: Suraj Sharma <surshar@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60727} TBR=jgruber@chromium.org,tebbi@chromium.org,surshar@microsoft.com Change-Id: Ibbcb3667be1042b3b0290d68369da597ea07102d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8952 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559866Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#60728}
-
Suraj Sharma authored
Converted JSGlobalObject, JSIteratorResult, JSLocale, JSDateTimeFormat, JSListFormat, JSNumberFormat, JSPluralRules, JSRelativeTimeFormat, JSSegmenter, JSAsyncFromSyncIterator to torque. Bug: v8:8952 Change-Id: I760a658c5bef7e12bc8f07b741245e9d1933164e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529262 Commit-Queue: Suraj Sharma <surshar@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60727}
-
- 09 Apr, 2019 2 commits
-
-
Z Duong Nguyen-Huu authored
Design docs: bit.ly/fast-frozen-sealed-elements-in-v8 This change is only support the transition from packed elements to packed sealed elements (via object.seal) or to packed frozen elements (via object.freeze). Added tests for non-extensible, sealed, frozen packed elements in https://chromium-review.googlesource.com/c/v8/v8/+/1474559 Added tests for non-extensible array in optimized code in https://chromium-review.googlesource.com/c/v8/v8/+/1531030 and https://chromium-review.googlesource.com/c/v8/v8/+/1544274 Using JSTests/ObjectFreeze micro-benchmarks for release build Before: TaggedTemplate-Numbers(Score): 0.967 TaggedTemplateLoose-Numbers(Score): 8.82 After: TaggedTemplate-Numbers(Score): 1.51 TaggedTemplateLoose-Numbers(Score): 8.89 Bug: v8:6831 Change-Id: Ib1089f1bc02eafb8d76ffe617f8fa3e406abd5a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1474559Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60723}
-
Georg Neis authored
Drive-by fix: In ProcessFeedbackForGlobalAccess, we had forgotten to return the feedback when it already existed. Bug: v8:7790, v8:9094 Change-Id: Ie4be6cef5755bbdd9d8ed472caaa2e32d243893d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1554680Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#60705}
-
- 04 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I1b9f3c0c805709c6570785ec9f1045f21c9d03e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541048Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60638}
-
- 01 Apr, 2019 1 commit
-
-
Georg Neis authored
... from Object to HeapObject, as they are never Smis. Change-Id: I4cbe12985091ed1b1e94dab2803a977ae3e25224 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541104 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60543}
-
- 29 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in src/objects to 'using' declarations. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: Iec455b40e9256ee3aae867a42c0e949a338d417c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545893Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60531}
-
- 25 Mar, 2019 2 commits
-
-
Mythri authored
Allocate feedback vectors lazily when the function's interrupt budget has reached a specified threshold. This cl introduces a new field in the ClosureFeedbackCellArray to track the interrupt budget for allocating feedback vectors. Using the interrupt budget on the bytecode array could cause problems when there are closures across native contexts and we may delay allocating feedback vectors in one of them causing unexpected performance cliffs. In the long term we may want to remove interrupt budget from bytecode array and use context specific budget for tiering up decisions as well. Bug: v8:8394 Change-Id: Ia8fbb71f5e8543a92f14c44aa762973da82d445c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520719 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#60450}
-
Z Duong Nguyen-Huu authored
EmbedderDataArray, JSMessageObject, JSSet, JSMap, JSWeakSet, JSWeakMap Bug: v8:8952 Change-Id: I996d9e18006184b8ac7be7d362e8faf36e44aaef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534304Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60420}
-
- 12 Mar, 2019 1 commit
-
-
Mythri authored
We want to allocate feedback vectors lazily in lite mode. To do that, we should create closures with the correct feedback cell. This cl allocates feedback cell arrays to hold these feedback cells in lite mode. This cl also modifies the compile lazy to builtin to expect these arrays in the feedback cell. Drive-by fix: InterpreterEntryTrampoline no longer has argument count in a register. So updated comments and removed unnecessary push/pop of this register. Bug: v8:8394 Change-Id: I10d8ca67cebce61a284f0c80b200e1f0c24577a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1511274Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#60189}
-
- 06 Mar, 2019 1 commit
-
-
Georg Neis authored
...mainly by giving a more precise type to global_proxy getters. Change-Id: If4aef6b25baa2c641a45b177c59690e3ebfc3985 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505578 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60072}
-
- 05 Mar, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
JSDate, JSStringIterator, JSAsyncFromSyncIterator, JSDataPropertyDescriptor Change-Id: Ia2cfd8fa61672fb4d6ec5082bae07e7add97fe60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1500674Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60041}
-
- 04 Mar, 2019 1 commit
-
-
Igor Sheludko authored
This CL also gives up trying to maintain double and system word fields at aligned addresses because currently it's not always maintained (v8:8875) and Torque object definitions do not support padding fields (v8:8863). Given that both platforms where pointer compression is going to be enabled (x64 and arm64) support loading of doubles and full words from 4-byte aligned addresses we are fine. Bug: v8:7703 Change-Id: I99fc6da5a0927f4db9b8fb24c7cc0bfc416523bc Reviewed-on: https://chromium-review.googlesource.com/c/1496974 Auto-Submit: Igor Sheludko <ishell@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60013}
-
- 01 Mar, 2019 1 commit
-
-
Tobias Tebbi authored
To make it obvious these are not defined in C++. Bug: v8:7793 Change-Id: Ib846023992e32ddd10dadc3834ce42b7604a1f48 Reviewed-on: https://chromium-review.googlesource.com/c/1495993Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59978}
-
- 27 Feb, 2019 3 commits
-
-
Irina Yatsenko authored
Creates Torque classes for JSProxy, JSAccessorPropertyDescriptor, JSCollection, JSProxyRevocableResult, JSValue Change-Id: I01eec27b158b4beb778cb5efce44f241c09ef0f7 Reviewed-on: https://chromium-review.googlesource.com/c/1489184 Commit-Queue: Irina Yatsenko <irinayat@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59921}
-
Sathya Gunasekaran authored
This will allow the devtools UI to display private fields on the scope panel. Instead of extending GetInternalProperties, we expose a separate GetPrivateFields method on the debug interface. This allows us to do better type checking, for example, we can directly cast to a v8::Private as this can only contain private fields. This also allows us to have better constraints on the input type -- v8::Object, as opposed to a v8::Value. The KeyAccumulator is extended to collect private names for the PRIVATE_NAMES_ONLY PropertyFilter. Bug: v8:8773 Change-Id: Id47c551186c59dae9a06721074ef78144f25892f Reviewed-on: https://chromium-review.googlesource.com/c/1475664 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59920}
-
tzik authored
This is a reland of 734a6575 Original change's description: > Do not enqueue or run a microtask on detached contexts > > This CL disables EnqueueMicrotask and RunMicrotasks on detached > contexts. That is, if an embedder call DetachGlobal() on a v8::Context, > EnqueueMicrotask on that context will not take effect, and all Microtask > that is enqueued before DetachGlobal will be cancelled. > > On Blink, this implies that a frame will no longer run a microtask after > it's navigated away. OTOH, detached frames in Blink are not affected. > > Bug: v8:8124 > Change-Id: I5b00ceef5ea2afb87cf067a65eb95c29bf91176d > Reviewed-on: https://chromium-review.googlesource.com/c/1416071 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Commit-Queue: Taiju Tsuiki <tzik@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59445} Tbr: adamk@chromium.org, yangguo@chromium.org, verwaest@chromium.org Bug: v8:8124 Change-Id: I959a18ae214f1385d5f453b3ed94772e60f71e0f Reviewed-on: https://chromium-review.googlesource.com/c/1469544 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59884}
-
- 26 Feb, 2019 1 commit
-
-
tzik authored
V8 used to use the microtask context when it runs EnqueueJob step 2. > Let job settings be some appropriate environment settings object. https://html.spec.whatwg.org/multipage/webappapis.html#enqueuejob(queuename,-job,-arguments) However, it's being updated to use the handler's context. https://github.com/whatwg/html/issues/1426#issuecomment-340071080 Change-Id: I24840a28ef2c903539fe4ace74ae59da290f5109 Reviewed-on: https://chromium-review.googlesource.com/c/1465902Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Cr-Commit-Position: refs/heads/master@{#59870}
-
- 25 Feb, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
Bug: v8:6831 Change-Id: I6e9f6fc718928f2f86d3b3c2dd144a6636b05790 Reviewed-on: https://chromium-review.googlesource.com/c/1481895 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59844}
-
- 13 Feb, 2019 2 commits
-
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
tzik authored
This updates the type of contexts to NativeContext instead of Context, namely on GetFunctionRealm(), GetCreationContext(), and JSGlobalObject::native_context. They should be semantically NativeContexts, but the return type hides the underlying NativeContext, and causes its user to cast the context to native. Change-Id: I2f234b0df8c2dcaeab25cb543e09d80d12ca7369 Reviewed-on: https://chromium-review.googlesource.com/c/1469541Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Cr-Commit-Position: refs/heads/master@{#59543}
-
- 30 Jan, 2019 1 commit
-
-
Benedikt Meurer authored
For instances created via constructors and `new` we try to pre-size the instances such that ideally all the data properties can be allocated as in-object properties (and we don't need to allocate the out-of-object PropertyArray backing store). This is accomplished with the helper of the Parser, which counts the property assignments to `this` in the constructor, and we use that as the starting point for pre-sizing logic (a mechanism called *slack tracking* is used to dynamically shrink the objects based on the real memory usage, and eventually compute the final starting size for instances of the individual constructors). This works well even with class hierarchies, since for a derived class constructor we just include the current constructor plus all the base constructors. I.e. with ```js class A { constructor() { this.x00 = null; this.x01 = null; this.x02 = null; this.x03 = null; this.x04 = null; this.x05 = null; this.x06 = null; this.x07 = null; this.x08 = null; this.x09 = null; this.x10 = null; this.x11 = null; this.x12 = null; this.x13 = null; this.x14 = null; this.x15 = null; this.x16 = null; this.x17 = null; this.x18 = null; this.x19 = null; } } class B extends A { constructor() { super(); } } ``` we will eventually learn that instances of `B` need 20 in-object properties. However this breaks with transpiled code (i.e. as generated via TypeScript or Babel), even when the constructors are properly chained. ```js function A() { this.x00 = null; this.x01 = null; this.x02 = null; this.x03 = null; this.x04 = null; this.x05 = null; this.x06 = null; this.x07 = null; this.x08 = null; this.x09 = null; this.x10 = null; this.x11 = null; this.x12 = null; this.x13 = null; this.x14 = null; this.x15 = null; this.x16 = null; this.x17 = null; this.x18 = null; this.x19 = null; } function B() { A.call(this); } Object.setPrototypeOf(B, A); ``` Here we will always have 10 in-object properties for instances of `B` (due to the generic over-allocation logic), and the other 10 properties have to be allocated in the out-of-object PropertyArray. This is unfortunate and actually not necessary. Instead we could just do the same [[Prototype]] walk on the constructor for regular function constructors that we perform for derived (native) class constructors. This CL changes that, such that we give the same treatment to transpiled class that we have for native classes. R=verwaest@chromium.org Bug: v8:8764, v8:8765 Doc: https://bit.ly/v8-instance-presizing-with-transpiled-classes Change-Id: Iac54391e41c9a39101751a678b3a647269fb009d Reviewed-on: https://chromium-review.googlesource.com/c/1442643 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59214}
-
- 25 Jan, 2019 1 commit
-
-
Mythri authored
Inferring the language mode involves iterating the stack to find the closure. This is an expensive operation and should be done only when required. This cl changes the implementation to infer the language mode only when we can't defer it any further. Currently, we infer the language mode when throwing an exception or when passing this information to PropertyCallbackArguments. This cl also changes the language mode parameter to SetProperty related methods to Maybe<ShouldThrow>. We only use the language mode to decide if we need to throw and using ShouldThrow instead of language mode simplifies the code by avoiding conversions from Maybe<ShouldThrow> to Maybe<LanguageMode> and vice-versa. Bug: v8:8580, chromium:923820, chromium:925289 Change-Id: I72497497f62fe0d86fcecd57b06b3183b7531f7b Reviewed-on: https://chromium-review.googlesource.com/c/1425912 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59094}
-
- 22 Jan, 2019 1 commit
-
-
Ross McIlroy authored
This is a reland of f5729f1c TBR=ulan@chromium.org Original change's description: > [GC] Ensure JSFunctions with flushed bytecode are flushed during GC. > > When bytecode is flushed from a SFI, the JSFunctions still retain their > FeedbackVector's and point to the interpreter entry trampoline. They are > reset if re-executed, however if not they could hold onto the feedback > vector indefinetly. This CL adds a pass the GC to detect JSFunctions that > need to be reset, and performs the reset at the end of GC. > > BUG=v8:8395 > > Change-Id: I3de8655aff9ff80f912b4fd51dee43eb98cfd519 > Reviewed-on: https://chromium-review.googlesource.com/c/1393292 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58775} Bug: v8:8395 Change-Id: If9580b25ba32e4065e20d86cb8ed22a3280d59e9 Reviewed-on: https://chromium-review.googlesource.com/c/1424860Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59001}
-
- 18 Jan, 2019 2 commits
-
-
Clemens Hammacher authored
This reverts commit d5e63b03. Reason for revert: Fails gc-stress: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20GC%20Stress/5312 Original change's description: > Reland "[GC] Ensure JSFunctions with flushed bytecode are flushed during GC." > > This is a reland of f5729f1c > > TBR=ulan@chromium.org > > Original change's description: > > [GC] Ensure JSFunctions with flushed bytecode are flushed during GC. > > > > When bytecode is flushed from a SFI, the JSFunctions still retain their > > FeedbackVector's and point to the interpreter entry trampoline. They are > > reset if re-executed, however if not they could hold onto the feedback > > vector indefinetly. This CL adds a pass the GC to detect JSFunctions that > > need to be reset, and performs the reset at the end of GC. > > > > BUG=v8:8395 > > > > Change-Id: I3de8655aff9ff80f912b4fd51dee43eb98cfd519 > > Reviewed-on: https://chromium-review.googlesource.com/c/1393292 > > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#58775} > > Bug: v8:8395 > Change-Id: I9bc84b62332575a080561c51f08b699b91e41e4a > Reviewed-on: https://chromium-review.googlesource.com/c/1414859 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58924} TBR=ulan@chromium.org,rmcilroy@chromium.org Change-Id: I5d3012d4c7277ae792b0488780ff426d51dd602f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8395 Reviewed-on: https://chromium-review.googlesource.com/c/1421838Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58925}
-
Ross McIlroy authored
This is a reland of f5729f1c TBR=ulan@chromium.org Original change's description: > [GC] Ensure JSFunctions with flushed bytecode are flushed during GC. > > When bytecode is flushed from a SFI, the JSFunctions still retain their > FeedbackVector's and point to the interpreter entry trampoline. They are > reset if re-executed, however if not they could hold onto the feedback > vector indefinetly. This CL adds a pass the GC to detect JSFunctions that > need to be reset, and performs the reset at the end of GC. > > BUG=v8:8395 > > Change-Id: I3de8655aff9ff80f912b4fd51dee43eb98cfd519 > Reviewed-on: https://chromium-review.googlesource.com/c/1393292 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58775} Bug: v8:8395 Change-Id: I9bc84b62332575a080561c51f08b699b91e41e4a Reviewed-on: https://chromium-review.googlesource.com/c/1414859 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58924}
-
- 14 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
This reverts commit f5729f1c. Reason for revert: GC Stress failures, e.g. https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/23549 Original change's description: > [GC] Ensure JSFunctions with flushed bytecode are flushed during GC. > > When bytecode is flushed from a SFI, the JSFunctions still retain their > FeedbackVector's and point to the interpreter entry trampoline. They are > reset if re-executed, however if not they could hold onto the feedback > vector indefinetly. This CL adds a pass the GC to detect JSFunctions that > need to be reset, and performs the reset at the end of GC. > > BUG=v8:8395 > > Change-Id: I3de8655aff9ff80f912b4fd51dee43eb98cfd519 > Reviewed-on: https://chromium-review.googlesource.com/c/1393292 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58775} TBR=ulan@chromium.org,rmcilroy@chromium.org Change-Id: I1ba0a190e54bb84b9e2c52ae73d19eb5afc02a4b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8395 Reviewed-on: https://chromium-review.googlesource.com/c/1408993Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58778}
-