- 03 Sep, 2018 2 commits
-
-
Yang Guo authored
These are now direct dependencies in Node.js. R=lushnikov@chromium.org Change-Id: I01a68394e2e22a1024b6c21b8222ac8b113fc693 Reviewed-on: https://chromium-review.googlesource.com/1179143 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55573}
-
Yutaka Hirano authored
Bug: None Change-Id: I26f136ff20f67b3eebc4374c9ac380d63f720ba9 Reviewed-on: https://chromium-review.googlesource.com/1192802 Commit-Queue: Yutaka Hirano <yhirano@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#55572}
-
- 02 Sep, 2018 2 commits
-
-
Sergiy Byelozyorov authored
TBR=sergiyb@chromium.org No-Try: true Bug: chromium:826280 Change-Id: I1ffaa592c686e07f13426d4f8459d50ff59b4d3c Reviewed-on: https://chromium-review.googlesource.com/1171239 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#55571}
-
Benedikt Meurer authored
The typing rules for NumberMax and NumberMin didn't properly deal with -0 up until now, leading to suboptimal typing, i.e. for a simple case like Math.max(Math.round(x), 1) TurboFan was unable to figure out that the result is definitely going to be a positive integer in the range [1,inf] or NaN (assuming that NumberOrOddball feedback is used for the value x). Bug: v8:8015 Change-Id: I06e14a9c9b0b813eb214ace7749fcc6ab36bb66a Reviewed-on: https://chromium-review.googlesource.com/1199304 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55570}
-
- 01 Sep, 2018 2 commits
-
-
Benedikt Meurer authored
Printing of both union and tuple types was broken such that the first type was always skipped due to a bug. Bug: v8:8015 Change-Id: I4bd215a9d8fa5bc7e017dd28e66512f4961228d1 Reviewed-on: https://chromium-review.googlesource.com/1199365Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55569}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/1a26c15..6773a0d Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/cd6bcbe..5167fb3 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/e7f9302..e323bd9 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/58f7169..3aa6139 Rolling v8/tools/gyp: https://chromium.googlesource.com/external/gyp/+log/d61a939..81286d3 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: Iada5a1194eef2052e0915b7bcf3c6e1576739fa1 Reviewed-on: https://chromium-review.googlesource.com/1199912Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#55568}
-
- 31 Aug, 2018 31 commits
-
-
Sathya Gunasekaran authored
This makes us spec compliant. Bug: chromium:875643 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I489870495fe1d326991c99f0551fe3329268c984 Reviewed-on: https://chromium-review.googlesource.com/1199910 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55567}
-
Sathya Gunasekaran authored
Instead of creating the SFIs during bootstrapping and storing on the context, this patch just creates the SFIs on demand. This patch saves 8 words per context, and several words per bound function by not storing the SFI. The created bound JSFunction is cached on the instance anyway, so it's totally fine to take a small hit when creating the bound JSFunction. Previously in the JS implementation, the creation of a bound function was even slower as it was a lazy function that would have to parsed, compiled and executed. So this is a step up in terms up perf and memory. Bug: v8:5751 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: If3b8461d00e5b37567b34b236d44e14576b630ff Reviewed-on: https://chromium-review.googlesource.com/1200006Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55566}
-
Frank Tang authored
Bug: v8:7979 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ie3005cc93e582ea4d8d501a8a4a194d7ae35c129 Reviewed-on: https://chromium-review.googlesource.com/1198682 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55565}
-
🎉 Michael Achenbach authoredThis reverts commit 4dac9872. Reason for revert: Speculative revert for layout test failures: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/25970 E.g.: virtual/service-worker-servicification/http/tests/serviceworker/webexposed/global-interface-listing-service-worker.html Original change's description: > Ship globalThis
🎉 > > Proposal repository: > https://github.com/tc39/proposal-global > > Intent to ship: > https://groups.google.com/d/msg/v8-users/Vkoh0wXRwaM/Yt7MpzhkAgAJ > > Bug: v8:5537 > Change-Id: I60a6c5375165d89548db12fef454a64137d04c27 > Reviewed-on: https://chromium-review.googlesource.com/1195494 > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Commit-Queue: Mathias Bynens <mathias@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55543} TBR=adamk@chromium.org,gsathya@chromium.org,mathias@chromium.org Change-Id: Iacb484d36ba2c8002336038660450b240006e0ab No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5537 Reviewed-on: https://chromium-review.googlesource.com/1199743Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#55564} -
Marijn Kruisselbrink authored
Bug: chromium:872465 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I75eccab304405569b40c5dcc18177354372a02c9 Reviewed-on: https://chromium-review.googlesource.com/1199464Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Marijn Kruisselbrink <mek@chromium.org> Cr-Commit-Position: refs/heads/master@{#55563}
-
Wez authored
Updates zx_vmar_*_old() callers back to the zx_vmar_*() equivalents, which have a new parameter order. Change-Id: I1662b4fbb866cef4eedc13e0db3e9389d4375d1e Reviewed-on: https://chromium-review.googlesource.com/1199903 Commit-Queue: Wez <wez@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55562}
-
Frank Tang authored
Bug: v8:7961 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I1d7f0a9e6e44cb34799f074ffa9fe8ca39bcef2b Reviewed-on: https://chromium-review.googlesource.com/1198766Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#55561}
-
Michael Achenbach authored
TBR=mslekova@chromium.org NOTRY=true Bug: chromium:879604 Change-Id: I051837bae866f391ec5f1555b845cd66cc9f777a Reviewed-on: https://chromium-review.googlesource.com/1199285 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#55560}
-
Sathya Gunasekaran authored
Bug: v8:8110 Change-Id: I7531ca961d0a0ed612ea3571c2bbef290b87c035 Reviewed-on: https://chromium-review.googlesource.com/1196689Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55559}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/ed29828..1a26c15 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d0d714d..cd6bcbe Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/5cc2afd..e7f9302 Rolling v8/third_party/fuchsia-sdk: https://chromium.googlesource.com/chromium/src/third_party/fuchsia-sdk/+log/3ec92c8..e0c4613 Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/d526632..2e68926 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/bb4146f..58f7169 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I8e0b4d715ddd47e8779c1300422e462b3470b373 Reviewed-on: https://chromium-review.googlesource.com/1199902 Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#55558}
-
jgruber authored
This reorders arguments in preparation for removing ebx from its calling convention (in a follow-up some args will be passed on the stack). Drive-by: Improve readability in the code handling different cases (array,spread,...). Bug: v8:6666 Change-Id: I0160f8efafd0fd0e841739578e01c32b38adb66e Reviewed-on: https://chromium-review.googlesource.com/1196884Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55557}
-
Benedikt Meurer authored
We can safely lower ToNumeric(x) to ToNumber(x) as long as we can guarantee that x is any primitive except BigInt (as ToNumeric would return that unchanged while ToNumber will throw). Bug: v8:8015 Change-Id: I66573cc204c7c919095ca7598a027fabef7d71a8 Reviewed-on: https://chromium-review.googlesource.com/1199665Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55556}
-
Michael Achenbach authored
This ports https://crrev.com/c/1185020 [Fuchsia] Add Mac build support. This also rolls v8/build: https://chromium.googlesource.com/chromium/src/build/+log/9f16b23..ed29828 TBR=yangguo@chromium.org Bug: chromium:707030 Change-Id: Ib74df070fa4a2b77c4837f82e4e4d8666a3166e5 Reviewed-on: https://chromium-review.googlesource.com/1199404 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#55555}
-
jgruber authored
In preparation for kRootRegister support on ia32. For both descriptors we simply shuffle registers around to remove ebx from the calling convention. Possible follow-up work: The ApiCallbackDescriptor could be simplified by passing call_data (and the Undefined constant) on the stack. This currently happens in the builtin body. Drive-by: Minor refactoring in InterpreterPushArgsMode to deobfuscate the different paths (spread/no-spread). Also use {Push,Pop}ReturnAddress helpers. Bug: v8:6666 Change-Id: I25fd738501fff71c038a0745cec04363f90df660 Reviewed-on: https://chromium-review.googlesource.com/1196552Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55554}
-
Benedikt Meurer authored
Bug: chromium:879560 Change-Id: Ia2d2699851358641d50f9997875810f8cb1100ff Reviewed-on: https://chromium-review.googlesource.com/1199742Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55553}
-
Alexey Kozyatinskiy authored
We can use Seek + Advance instead on source stream. TBR=verwaest@chromium.org Bug: chromium:879550 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ic6ad12a86105ce68ea404e313b74d11417928cf0 Reviewed-on: https://chromium-review.googlesource.com/1196686 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55552}
-
Alexey Kozyatinskiy authored
GetIdentityHashHelper function can return hash from GlobalDictionary, but SetHashAndUpdateProperties crashes on DCHECK on attempt to set this hash (it works when DCHECKs are disabled because SetHash is defined on base class for NameDictionary and GlobalDictionary). R=yangguo@chromium.org Bug: none Change-Id: I740fa6a3232f7db8e4396b9a5e4664b8ab81969a Reviewed-on: https://chromium-review.googlesource.com/1198765Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55551}
-
Alexey Kozyatinskiy authored
DebugEvaluate contains code since 2009 that bypasses JSGlobalProxy and returns JSGlobalObject when result of expression is global proxy. This behavior may be dangerous: - JSGlobalObject does not perform security checks, - some parts of V8 code do not ready for JSGlobalObject, e.g., SetHashAndUpdateProperties function will crash on DCHECK if we will try to store JSGlobalObject to map. At the same time it looks like there is no any valid use case for it. R=yangguo@chromium.org Bug: none Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib0e35d5ae9ef47318c866e44c5c6856e34ed05a5 Reviewed-on: https://chromium-review.googlesource.com/1198764Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55550}
-
Michael Achenbach authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/dd6b994..9f16b23 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bc2c0a9..d0d714d Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/2d0e03c..5cc2afd TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I292ecb01b67446d985dc7070f9f7c453395e7981 Reviewed-on: https://chromium-review.googlesource.com/1192237 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#55549}
-
Mike Stanton authored
Change-Id: Ibfddd236dbe8b6a205a457aea1cb9eb00b0a3572 Reviewed-on: https://chromium-review.googlesource.com/1199403Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#55548}
-
Benedikt Meurer authored
As noticed by jkummerow@ there's probably not really a point in keeping two separate runtime functions that perform the same operation, but one has a different fast-path (which is not available to the other). So %KeyedGetProperty is now effectively %GetProperty and used consistently as fallback from both the ICs as well as other callers like the GetProperty builtin. Bug: v8:8015 Change-Id: Ib46b13da739229e2eb820ecf87923ac99c6971d3 Reviewed-on: https://chromium-review.googlesource.com/1199105 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#55547}
-
Simon Zünd authored
This CL fixes an issue where getters/setters would get called on a prototype with the wrong receiver. This happens in the pre-processing for Array.p.sort when values get copied down from the prototype chain. R=jgruber@chromium.org Bug: v8:7682 Change-Id: I0d8ff1dc721c33bd721aaca54ffd357b3d2a2096 Reviewed-on: https://chromium-review.googlesource.com/1198767Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55546}
-
Camillo Bruni authored
Bug: v8:7717, chromium:879304 Change-Id: I524a9cf45f6a69efe0445b4ffaddfffc85c5560d Reviewed-on: https://chromium-review.googlesource.com/1199282 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55545}
-
Georg Neis authored
This reverts commit 1c48d52b. Reason for revert: Clusterfuzz found something. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1199303Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55544}
-
🎉 Mathias Bynens authoredProposal repository: https://github.com/tc39/proposal-global Intent to ship: https://groups.google.com/d/msg/v8-users/Vkoh0wXRwaM/Yt7MpzhkAgAJ Bug: v8:5537 Change-Id: I60a6c5375165d89548db12fef454a64137d04c27 Reviewed-on: https://chromium-review.googlesource.com/1195494Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#55543}
-
Bret Sepulveda authored
If profiling is done with --log-source-code profview will now display a "View source" link for each function in the tree view. Clicking this will show a new source viewer, with sampled lines highlighted. See the associated bug for screenshots. This patch also fixes a bug in the profiler where the source info of only the first code object for each function would be logged, and includes some refactoring. Bug: v8:6240 Change-Id: Ib96a9cfc54543d0dc9bef4657cdeb96ce28b223c Reviewed-on: https://chromium-review.googlesource.com/1194231 Commit-Queue: Bret Sepulveda <bsep@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55542}
-
Benedikt Meurer authored
The %GetPrototype runtime function is not used anymore. Also remove the cctests that were introduced to guard the Crankshaft optimizations for the %_GetPrototype intrinsic. Bug: v8:8015 Change-Id: I4b848f2c8d67209dae002d260a26867299d6b4a5 Reviewed-on: https://chromium-review.googlesource.com/1199106Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55541}
-
Benedikt Meurer authored
In the KeyedLoadICGeneric case the engine previously immediately fell back to the %KeyedGetProperty runtime function if the key was not a Name or a valid array index. This turns out to be really slow if a program passes for example objects as keys. Since we already have all the logic in place to convert an arbitrary JavaScript value to a Name, we can just call into ToName first and then operate on the result of that, which is significantly faster since C++ usually doesn't need to call back into JavaScript then to convert a JSReceiver into a Name. This also changes the ToName builtin to use the existing builtin for NonPrimitiveToPrimitive, which stays in JavaScript land completely. Since there's not really a point in inlining ToName into the call sites, the other uses were also changed to call the builtin instead, which saves some space and might also help with instruction cache utilization (especially when the ToName logic is more involved now). This improves the performance on the microbenchmark ```js const n = 1e7; const obj = {}; const key = [1,2]; const start = Date.now(); for (let i = 0; i < n; ++i) { if (obj[key] === undefined) obj[key] = key; } print(`time: ${Date.now() - start} ms.`); ``` by up to 36%. On the ARES-6 ML benchmark the steady state improves by up to ~7% and the overall mean for ARES-6 ML improves by up to ~6%. Further improvements might be possible here if the GetProperty builtin could be made faster for common prototype lookups like Symbol.toPrimitive and the "valueOf" and "toString" functions. Bug: v8:6344, v8:6670 Change-Id: Ic3ac2bc4d4277836ef03039de4eda5c5f66a85da Reviewed-on: https://chromium-review.googlesource.com/1199022 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#55540}
-
Benedikt Meurer authored
Teach the GetProperty builtin how to perform [[Get]] on JSProxy instances by calling into the dedicated ProxyGetProperty builtin that we already use for the LOAD_IC / KEYED_LOAD_IC. This is important when proxies are used in places were GetProperty builtin is used like for example as iterables in for..of loops or in spreads. On a simple micro-benchmark like the following ```js const proxy = new Proxy([1, 2, 3], { get(target, property) { return target[property]; } }); const TESTS = [ function testForOfProxy() { for (const x of proxy) {} }, function testSpreadProxy() { return [...proxy]; } ]; function test(fn) { var result; for (var i = 0; i < 1e6; ++i) result = fn(); return result; } test(x => x); for (var j = 0; j < TESTS.length; ++j) test(TESTS[j]); for (var j = 0; j < TESTS.length; ++j) { var startTime = Date.now(); test(TESTS[j]); print(TESTS[j].name + ':', (Date.now() - startTime), 'ms.'); } ``` improves from around testForOfProxy: 1672.6 ms. testSpreadProxy: 1956.6 ms. to testForOfProxy: 408.4 ms. testSpreadProxy: 530.8 ms. on average, which corresponds to a 4-5x performance improvement, even for small arrays. On the ARES-6 Air benchmark this completely eliminates all calls to the %GetProperty runtime function, and thereby improves the steady state mean by 2-3%. Bug: v8:6344, v8:6557, v8:6559 Change-Id: Ifebdaff8f3ae5899a33ce408ecd54655247f3a02 Reviewed-on: https://chromium-review.googlesource.com/1199023Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55539}
-
Jao-ke Chin-Lee authored
chromeos_daisy_chromium_compile_only_ng has been deleted and was removed from Buildbucket in https://chromium-review.googlesource.com/c/chromium/src/+/1195731 BUG=v8:8058 Change-Id: I42adaca73f0b04cf553e16f215f92ed2f5a7a010 Reviewed-on: https://chromium-review.googlesource.com/1198242Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#55538}
-
Frank Tang authored
The expectation is changed in https://chromium-review.googlesource.com/c/chromium/src/+/1196032 revert of https://chromium-review.googlesource.com/c/v8/v8/+/1188143 to reland https://chromium-review.googlesource.com/c/v8/v8/+/1185763 v8:7961 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_blink_rel Change-Id: I461db83b377c31abda72f2ce9c4501fcdd3b2663 Reviewed-on: https://chromium-review.googlesource.com/1195539Reviewed-by: Jungshik Shin <jshin@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#55537}
-
- 30 Aug, 2018 3 commits
-
-
Adam Klein authored
Change-Id: I4b810b3684609f19cef3adf295ac104d00b9a4c3 Reviewed-on: https://chromium-review.googlesource.com/1194441Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55536}
-
Bill Budge authored
- Cleans up existing code that tests for representations using a bitmask. - Bypass FP register allocation for sequences without FP vregs. Change-Id: I5ff32e80e0c33848ba83ee17f786b01e37821aa2 Reviewed-on: https://chromium-review.googlesource.com/1195528 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55535}
-
Ben L. Titzer authored
This CL fixes a bug where the receiving instance was updated improperly in the dispatch table(s) of an imported table. BUG=chromium:875322 R=mstarzinger@chromium.org Change-Id: Ib5af238a0847bf332a12863523e897f59f137c1d Reviewed-on: https://chromium-review.googlesource.com/1196886Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55534}
-