- 30 Oct, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Bug: v8:9810 Change-Id: I2893c3066616b8fb5b3bebde4797adb0dac109c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889878 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#64659}
-
- 16 Oct, 2019 1 commit
-
-
Sathya Gunasekaran authored
Updates CSA::TryToIntptr to handle array indices that are less than INT_MAX which allows to handle string keys in the ICs. Updates ICs to go monomorphic for string keys that are array indices. Updates Turbofan to handle array indices when lowering element access. Change-Id: Ibdde20130e075d0d645ab4a8266a968335eaad84 Bug: v8:9449 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813018Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64320}
-
- 09 Oct, 2019 1 commit
-
-
Seth Brenith authored
In preparation for allowing Torque to generate the list of instance types, I'd like to make the rules a bit more consistent for how instance types are spelled. This CL is my proposal for a system where every non-String instance type name is exactly equal to calling CapifyStringWithUnderscores on the corresponding class name and appending "_TYPE". This change is almost all find&replace; the only manual changes are in: - src/objects/instance-type.h - src/torque/utils.cc - tools/gen-postmortem-metadata.py This change is in response to the review comment https://chromium-review.googlesource.com/c/v8/v8/+/1757094/25/src/builtins/base.tq#132 Change-Id: Ife3857292669f54931708e934398b2684e60bea5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1814888 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#64199}
-
- 01 Oct, 2019 1 commit
-
-
Leszek Swirski authored
Change-Id: I822f3961b2ec5ef8fb7ca4765cb7c9fd38514223 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832171 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#64060}
-
- 26 Sep, 2019 1 commit
-
-
Igor Sheludko authored
This CL fixes comparison operations that take into account full-word value instead of the lower 32 bits and tweaks some CSA helper functions for smi-corrupting decompression. Bug: v8:9706 Change-Id: I50e38a9f34b911ec0b8dd4e21298417bf23160aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1824943Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63995}
-
- 17 Sep, 2019 1 commit
-
-
Ross McIlroy authored
BUG=v8:6949,v8:9396 Change-Id: Icd65e16f6b5b41ad56d1b8767a73e8ca15d05b74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1807365 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#63845}
-
- 16 Sep, 2019 1 commit
-
-
Ross McIlroy authored
Also TNodify: - LoadJSPrimitiveWrapperValue - GetSuperConstructor - InstanceOf BUG=v8:6949,v8:9396 Change-Id: I4b39b418cdf01bd72e35441f037d16ede9c89ce9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803639 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63791}
-
- 13 Sep, 2019 2 commits
-
-
Ross McIlroy authored
- HasInPrototypeChain - OrdinaryHasInstance - ObjectPrototypeIsPrototype - ObjectHasInstance BUG=v8:6949, v8:9396 Change-Id: I85b21f1e74aa869f212dc788a1dbe76c50a0d96e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803342 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63761}
-
Igor Sheludko authored
Bug: v8:9708 Change-Id: I91e429e478ad70dc2212f9f78830d10941fa47e6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800581Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63740}
-
- 12 Sep, 2019 3 commits
-
-
Santiago Aboy Solanes authored
TNodified: * EmitCreateShallowArrayLiteral * EmitCreateShallowObjectLiteral Also propagated the TNodification of AllocationSite. Previously it was used a lot with nullptr, and that changed to {}. Bug: v8:6949, v8:9396 Change-Id: I8ed04d2d346f5960bba23a233c3dd244ad7f122a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795346 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#63725}
-
Tobias Tebbi authored
This enables using TNode types without including code-assembler.h, which is useful when generating CallInterfaceDescriptors. As a drive-by, this moves TNode from v8::internal::compiler to v8::internal. It's only used outside of the compiler anyway. Change-Id: I3d938c22366a3570315041683094f77b0d1096a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1798425 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63721}
-
Igor Sheludko authored
Bug: v8:9708 Change-Id: I73cbe14437f596b805084ba61bc669556ac34289 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1798642Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63718}
-
- 04 Sep, 2019 1 commit
-
-
Georg Neis authored
Change-Id: I29a4d20656727e6ec1e1fd052a840bd5aefe3cd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781052 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63544}
-
- 27 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Using the tool again, the previous iteration accidentally ignored Node/TNode behind a typedef. Automatic replacement of types with manual cleanup/addition of CASTs where necessary. Bug: v8:9396 Change-Id: I33b6d229669cb80586d5d8e82c04542df671f0b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768367 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63409}
-
- 26 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Forbid using LoadRoot in CSA (with a bailout via CodeAssembler), so that users are forced to use helper macros for roots, which have statically known types. Convert all current uses of LoadRoot to use these macros, introducing new ones where necessary. Bug: v8:9396 Change-Id: I91214fca6e5ace7554d79605706a8a60117468fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762526 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63398}
-
- 23 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Replace uses of WordEqual on two tagged representation nodes with a new TaggedEqual helper, which on pointer compressed configs only compares the bottom 32-bits of the word. We no longer allow using WordEqual on anything not known to be a WordT (i.e. Node* or TNode<Object>). In the future, this may allow us to ignore the top bits of an uncompressed Smi, and have simpler decompression, though this patch is not sufficient for such a change. As a necessary drive-by, TNodify a bunch of stuff. Bug: v8:8948 Change-Id: Ie11b70709e5d3073f12551b37b420a172a71bc99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763531 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63372}
-
- 22 Aug, 2019 1 commit
-
-
Sathya Gunasekaran authored
This reverts commit 5c59ba4f. Reason for revert: requires more thinking Original change's description: > [ic] Fix KeyedLoadIC for ArrayIndex access > > Previously, without support for converting strings to numbers we'd > switch to megamorphic state and go to the runtime always to do the > conversion causing a performance cliff. > > This patch improves the following js-perf-test scores: > Object-Lookup-String-Constant-BytecodeHandler: 4.25% > Object-Lookup-Index-String-BytecodeHandler: 5.41% > > Bug: v8:9449 > Change-Id: I63787fa84373fc946f1304b0141e48a52a1b4bcb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690953 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63293} TBR=mythria@chromium.org,jyan@ca.ibm.com,gsathya@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9449 Change-Id: I6b6ad5901175c2e6bbd7516b13e91471adb5776d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1765532Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#63347}
-
- 20 Aug, 2019 1 commit
-
-
Sathya Gunasekaran authored
Previously, without support for converting strings to numbers we'd switch to megamorphic state and go to the runtime always to do the conversion causing a performance cliff. This patch improves the following js-perf-test scores: Object-Lookup-String-Constant-BytecodeHandler: 4.25% Object-Lookup-Index-String-BytecodeHandler: 5.41% Bug: v8:9449 Change-Id: I63787fa84373fc946f1304b0141e48a52a1b4bcb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690953Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#63293}
-
- 29 Jul, 2019 1 commit
-
-
Jakob Gruber authored
Prior to this CL, the regexp fast path check is stricter than it needs to be. For example, adding any arbitrary property on the regexp prototype would move the execution of all regexp builtins in the same context onto the slow path. This actually happens in the real world: popular web frameworks commonly monkey-patch builtin prototypes to add functionality. The intent of this CL is to widen the fast path for regexp builtins s.t. modifications of the prototype that do not conflict with our requirements stay on the fast path. This is done by extending the current fast path check with an additional step. If checking the prototype map identity or relevant prototype property constness fails, we now compare the actual value of all relevant properties against the expected value. If these match, the prototype can be considered fast. The new step as described in the previous paragraph is part of the permissive fast path check (BranchIfFastRegExp_Permissive). The strict variant (BranchIfFastRegExp_Strict) is also still required by a few spots. We should refactor these to also allow the permissive check in follow-up work. Bug: v8:5577,chromium:977382 Change-Id: I69b2244e68ccfbd00edf17fc326aa4b5f5d089fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706056 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62948}
-
- 18 Jul, 2019 1 commit
-
-
Zhang, Shiyu authored
.. by moving the element check forward. So that we skip try_fast path when we have elements on the receiver. Bug: chromium:977870,chromium:983982 Change-Id: Ib26fb3df215ffc5e0ac0c7e344a4239b845fe129 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1697042 Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#62796}
-
- 11 Jul, 2019 1 commit
-
-
Mythri A authored
GetOwnPropertyNameTryFast uses ENUMERABLE_STRINGS filter to trigger fast path in KeyAccumulator::GetKeys conditionally when all properties on the receiver are enumerable. It is not easy to verify if all properties are enumerable and the current check is incorrect in some cases. For ex: when we have non-enumerable properties when we have elements on the receiver. This cl removes this try_fast path from the builtin. This could impact performance. The long term fix for this would be to fix KeyAccumulator::GetKeys to use fast path for more cases. Bug: chromium:977870 Change-Id: Iecde730739c2c452ffa0d893d0d1b3612a45d1b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679499Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#62649}
-
- 24 Jun, 2019 1 commit
-
-
Mathias Bynens authored
We currently use the class name “JSValue” for JSObjects that wrap primitive values. This name is a common source of confusion. This patch switches to a name that’s more clear. In addition to manual tweaks, the patch applies the following mechanical global replacements: before | after --------------------------------|-------------------------------------- if_valueisnotvalue | if_valueisnotwrapper if_valueisvalue | if_valueiswrapper js_value | js_primitive_wrapper JS_VALUE_TYPE | JS_PRIMITIVE_WRAPPER_TYPE JSPrimitiveWrapperType | JSPrimitiveWrapper type jsvalue | js_primitive_wrapper JSValue | JSPrimitiveWrapper _GENERATED_JSVALUE_FIELDS | _GENERATED_JSPRIMITIVE_WRAPPER_FIELDS Change-Id: I9d9edea784eab6067b013e1f781e4db2070f807c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672942Reviewed-by: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#62337}
-
- 17 Jun, 2019 1 commit
-
-
Seth Brenith authored
This change removes the special case in the Torque compiler for types that descend from JSObject: they will no longer get implicit "| Undefined" appended to their types for verification purposes. It removes any additional custom verification steps in objects-debug that are made redundant by that change. In order to do so safely, I categorized all cases where we were implicitly adding "| Undefined" to the field type, as follows: 1. Classes that aren't using the generated verifier function (we should probably revisit these, but for now we at least know they're safe): - JSGlobalObject - JSFinalizationGroup - JSFinalizationGroupCleanupIterator 2. Classes where the existing verifier is already at least as strict as what we would get after removing the implicit "| Undefined": - JSDate - JSPromise - JSRegExp - JSRegExpStringIterator - WasmMemoryObject - JSWeakRef - JSStringIterator - WasmExceptionObject - JSListFormat (fixed in part 1) - JSPluralRules (fixed in part 1) - JSRelativeTimeFormat (fixed in part 1) - JSSegmenter (fixed in part 1) - JSArrayBufferView (fixed in part 1) - JSTypedArray (fixed in part 1) 3. Classes where, to the best of my knowledge based on code inspection, we already initialize the object correctly to pass the new stricter generated verifier: - JSFunction - JSArrayIterator - JSMessageObject - JSBoundFunction - JSAsyncFromSyncIterator - WasmModuleObject - JSAsyncFunctionObject 4. Classes that needed some adjustment to their initialization order to avoid exposing uninitialized state to the GC: - JSArray (only in Factory::NewJSArray; Runtime_NewArray and CodeStubAssembler::AllocateJSArray already behave fine) - WasmTableObject - JSDateTimeFormat - JSNumberFormat - JSCollator - JSV8BreakIterator - JSLocale - JSSegmentIterator - JSModuleNamespace 5. Classes that had incorrect type definitions in Torque: - WasmGlobalObject (category 4 after correction) 6. Classes that weren't fully initialized due to bugs: - JSGeneratorObject - JSAsyncGeneratorObject Bug: v8:9311 Change-Id: I99ab303d3352423f50a3d0abb6eb0c9b463e7552 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1654980 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62228}
-
- 31 May, 2019 1 commit
-
-
Benedikt Meurer authored
The `FunctionTemplate::SetHiddenPrototype()` API was removed in a previous CL, after being deprecated since beginning of the year. This removes all the logic behind it, leaving us with just the special case of the JSGlobalProxy which has the JSGlobalObject as its hidden prototype. This gives us back one bit in `Map::bit_field2` and removes quite a bit of complexity from the code base (especially due to previous work from verwaest@ in this area). Bug: v8:9267 Change-Id: Id04b59686212fe35a63c9451aa3e045f0766b9cc Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619752 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61938}
-
- 27 May, 2019 1 commit
-
-
Clemens Hammacher authored
This replaces all typedefs that define types and not functions by the equivalent "using" declaration. This was done mostly automatically using this command: ag -l '\btypedef\b' src test | xargs -L1 \ perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg' Patchset 2 then adds some manual changes for typedefs for pointer types, where the regular expression did not match. R=mstarzinger@chromium.org TBR=yangguo@chromium.org, jarin@chromium.org Bug: v8:9183 Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61849}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 20 May, 2019 2 commits
-
-
Benedikt Meurer authored
The invariant is that Map::bit_field2 shouldn't change, and the IsInRetainedMapListBit apparently changes when the map is held weakly from optimized code. This causes TurboFan compilations to change the Map::Hash() result, which in turn causes lookups on the normalized map cache to miss (and maybe other bad consequences). With this change we swap Map::IsInRetainedMapListBit (previously in bit_field2) and Map::HasHiddenPrototypeBit (previously in bit_field3) to address this problem. Bug: chromium:963411, v8:9114, v8:9267 Change-Id: I040a27c37305fa602649750bd93bee40c91fca78 Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619747 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61657}
-
Yang Guo authored
Code that is being moved primarily deal with layout of a JSObject, accessing properties and elements, and map transitions. NOTREECHECKS=true NOTRY=true Bug: v8:9247 Change-Id: Ibce5d5926ac4021c8d40c4dd109948775ce1da58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613994 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61638}
-
- 29 Apr, 2019 1 commit
-
-
Benedikt Meurer authored
This adds a new %_CopyDataProperties intrinsic, that reuses most of the existing machinery that we already have in place for Object.assign() and computed property names in object literals. This speeds up the general case for object spread (where the spread is not the first item in an object literal) and brings it on par with Object.assign() at least - in most cases it's significantly faster than Object.assign(). In the test case [1] referenced from the bug, the performance goes from objectSpreadLast: 3624 ms. objectAssignLast: 1938 ms. to objectSpreadLast: 646 ms. objectAssignLast: 1944 ms. which corresponds to a **5-6x performance boost**, making object spread faster than Object.assign() in general. Drive-by-fix: This refactors the Object.assign() fast-path in a way that it can be reused appropriately for object spread, and adds another new builtin SetDataProperties, which does the core of the Object.assign() work. We can teach TurboFan to inline Object.assign() based on the new SetDataProperties builtin at some later point to further optimize Object.assign(). [1]: https://gist.github.com/bmeurer/0dae4a6b0e23f43d5a22d7c91476b6c0 Bug: v8:9167 Change-Id: I57bea7a8781c4a1e8ff3d394873c3cd4c5d73834 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587376Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61100}
-
- 31 Jan, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
According to spec https://tc39.github.io/ecma262/#sec-object.assign, https://tc39.github.io/ecma262/#sec-ordinaryownpropertykeys, object.assign should copy symbols last. The current implementation ignores that order. The idea of the fix here is to do iteration twice, one to skip symbol first then one to skip string. Bug: v8:6705 Change-Id: I27a353e0c44a8f7adcf55d7143dd3ce26bea2724 Reviewed-on: https://chromium-review.googlesource.com/c/1432597 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59258}
-
- 24 Jan, 2019 1 commit
-
-
Mike Stanton authored
All users have elements already, and we can just pass that in. Change-Id: Ie9b8c1290d74bce120461c9f15695e8eb7dfd7c2 Reviewed-on: https://chromium-review.googlesource.com/c/1430072 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59064}
-
- 19 Dec, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: Iebb60551a461304539d943a080ce107eecf6fdbf Reviewed-on: https://chromium-review.googlesource.com/c/1384264Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#58371}
-
- 18 Dec, 2018 1 commit
-
-
Mythri authored
When we call ObjectToString on JSValues we only looked at string tags on the prototype map of the JSValue's value type and do not check the tags on the JSValue's prototype chain which may be non-trivial if subclassing is involved. For ex: if we have a class Test extend Number, we only looked for tags on the Number prototype and not on the Test prototype. This cl fixes the builtin to also check for these cases. Bug: v8:7706 Change-Id: I9f0e3bb6499646bf27b92bf4fb4e9014f6efa56b Reviewed-on: https://chromium-review.googlesource.com/c/1378176Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#58338}
-
- 24 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
This is a reland of e8a22a70 Original change's description: > [iwyu] Add missing includes > > This fixes a presubmit error: > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Presubmit/454 > > It also adds another missing include. > > R=machenbach@chromium.org > CC=caitp@igalia.com > > Bug: v8:7490 > Change-Id: I915a5bf431073410a67ff08471fd5e6974e31aa1 > No-Try: true > No-Tree-Checks: true > Reviewed-on: https://chromium-review.googlesource.com/c/1346111 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57671} TBR=clemensh@chromium.org NOTRY=true NOTREECHECKS=true Bug: v8:7490 Change-Id: Id327a36cc5a727e734ea1bb6faf43e592ee2f21c Reviewed-on: https://chromium-review.googlesource.com/c/1350129Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#57805}
-
- 22 Nov, 2018 1 commit
-
-
Ulan Degenbaev authored
This fixes places that assume that DescriptorArray is a WeakFixedArray. In addition to the existing: - LoadDetailsByKeyIndex - LoadValueByKeyIndex - LoadFieldTypeByKeyIndex This introduces Load*ByDescriptorEntry versions and LoadKeyByKeyIndex. Bug: v8:8486 Change-Id: I958867138df7756c715ae3d449b3206a32076514 Reviewed-on: https://chromium-review.googlesource.com/c/1346501 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57727}
-
- 21 Nov, 2018 2 commits
-
-
Clemens Hammacher authored
This reverts commit e8a22a70. Reason for revert: Depends on another reverted CL: https://crrev.com/c/1337585 Original change's description: > [iwyu] Add missing includes > > This fixes a presubmit error: > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Presubmit/454 > > It also adds another missing include. > > R=machenbach@chromium.org > CC=caitp@igalia.com > > Bug: v8:7490 > Change-Id: I915a5bf431073410a67ff08471fd5e6974e31aa1 > No-Try: true > No-Tree-Checks: true > Reviewed-on: https://chromium-review.googlesource.com/c/1346111 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57671} TBR=machenbach@chromium.org,clemensh@chromium.org Change-Id: Id01d5ff327bc50f8d21a4092ba881f5d5e982a92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7490 Reviewed-on: https://chromium-review.googlesource.com/c/1346117Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57678}
-
Clemens Hammacher authored
This fixes a presubmit error: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Presubmit/454 It also adds another missing include. R=machenbach@chromium.org CC=caitp@igalia.com Bug: v8:7490 Change-Id: I915a5bf431073410a67ff08471fd5e6974e31aa1 No-Try: true No-Tree-Checks: true Reviewed-on: https://chromium-review.googlesource.com/c/1346111Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57671}
-
- 26 Oct, 2018 1 commit
-
-
Jakob Gruber authored
Tbr: ishell@chromium.org Bug: v8:8238 Change-Id: I3fe3b821105d2ce58df717970085098f6336f937 Reviewed-on: https://chromium-review.googlesource.com/c/1301512Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57039}
-
- 16 Oct, 2018 1 commit
-
-
peterwmwong authored
This also includes ports of Array.p.toString and Array.p.toLocaleString. Many parts of the old JS implementation are preserved, because TypedArray.p.join still relies on it. These will be removed once TypedArray.p.join is ported to Torque. To simplify implementation, special handling of extremely sparse arrays has been removed. Performance improvements vary by array size, elements, and sparse-ness. Some quick numbers and graphs are here: https://docs.google.com/spreadsheets/d/125VLmRMudk8XaomLCsZQ1ewc94WCqht-8GQwU3s9BW8/edit#gid=2087673710 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia4069a068403ce36676c37401d349aefc976b045 Reviewed-on: https://chromium-review.googlesource.com/c/1196693 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56699}
-
- 08 Oct, 2018 1 commit
-
-
Marja Hölttä authored
See https://chromium-review.googlesource.com/1219025 for the corresponding MaybeObject renaming. BUG=v8:7308 Change-Id: Ib454fd53d12f110da289e1d3e1e12411b016e557 Reviewed-on: https://chromium-review.googlesource.com/c/1267937Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56443}
-