- 24 Mar, 2022 6 commits
-
-
Shu-yu Guo authored
Add a test for the case where SlicedStrings of ThinStrings are looked up in the string table, testing the path that the original string's length differs from the actual string's length. Bug: chromium:1309767 Change-Id: I909c64397bf28ec33c3324d94882fbfe81ac4109 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3549837Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#79610}
-
Nico Hartmann authored
Bug: chromium:1309769, v8:12619 Change-Id: I880c7326f2ec91f1aa985d6b7ed67f8f5afc074b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548897 Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#79608}
-
Marja Hölttä authored
It's hitting unimplemented code paths. Bug: v8:11111, v8:12731 Change-Id: Icbffced6cbe207426363daa5f3b9ff5677b58b6c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548816Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79605}
-
Joyee Cheung authored
- When the property being defined with DefineKeyedOwnIC or DefineNamedOwnIC already exists, we should use the slow path to check if the operation is allowed in case the property is non-configurable or Object.preventExtensions() has been called on the property. - Since KeyedStoreIC:Store() reuses StoreIC::Store() when the key is a name, we should use Runtime::DefineObjectOwnProperty() for DefineKeyedOwnIC too. - When dealing with public fields, Runtime::DefineObjectOwnProperty() should use JSReceiver::CreateDataProperty() instead of Object::SetProperty() for the specified semantics. This patch also adds JSReceiver::AddPrivateField() for it and StoreIC::Store to define private fields without triggering traps or checking extensibility. - To emit a more specific error message when redefining properties on non-extensible objects, Object::AddDataProperty() now also takes a EnforceDefineSemantics enum to distinguish between set and define. - Drive-by: fix JSReceiver::CheckIfCanDefine() which should check for extensibility even if the configurability check passes. Bug: chromium:1259950, v8:9888 Change-Id: Ib1bc851ffd4b9c3a0e98cac96dafe743c08ee37e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3517934Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#79603}
-
Thibaud Michaud authored
This is a reland of commit d9e1f2ae Change: disable regression test on non-SIMD hardware Original change's description: > [wasm][liftoff] Spill regs for multi-value merges > > If there is more than one value in the merge region, a stack-to-stack > move can overwrite the source of a stack-to-register move. To avoid > this, spill all registers. > > R=clemensb@chromium.org > > Bug: chromium:1299183 > Change-Id: I10495434d0a18c9072ee3882e00a687edd8c592a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3523044 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79584} Bug: chromium:1299183 Change-Id: I6f2af786ab91194a93945f5030575d1b8abee7fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548716Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79601}
-
Clemens Backes authored
Before productionizing this, we probably want to just ignore the whole section if it contains invalid data, but for now failing with a decode error is more consistent with existing checks. R=ecmziegler@chromium.org Bug: v8:12537 Change-Id: I7fc5933573a4d6eddd039bf51361c5bee5c5170d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545177Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79593}
-
- 23 Mar, 2022 7 commits
-
-
Shu-yu Guo authored
This reverts commit d9e1f2ae. Reason for revert: Linux test failures: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/45960/overview Original change's description: > [wasm][liftoff] Spill regs for multi-value merges > > If there is more than one value in the merge region, a stack-to-stack > move can overwrite the source of a stack-to-register move. To avoid > this, spill all registers. > > R=clemensb@chromium.org > > Bug: chromium:1299183 > Change-Id: I10495434d0a18c9072ee3882e00a687edd8c592a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3523044 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79584} Bug: chromium:1299183 Change-Id: I465129695cfc1c5678923f7eefe5b91e31383798 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3546745 Auto-Submit: Shu-yu Guo <syg@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#79585}
-
Thibaud Michaud authored
If there is more than one value in the merge region, a stack-to-stack move can overwrite the source of a stack-to-register move. To avoid this, spill all registers. R=clemensb@chromium.org Bug: chromium:1299183 Change-Id: I10495434d0a18c9072ee3882e00a687edd8c592a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3523044Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79584}
-
Joyee Cheung authored
Since assignments to read-only private references can be skipped due to short-circuiting in logical assignments, we should not eagerly emit the error of invalid writes, and should instead load the values as usual, only emitting an error when the assignment happens, which can be handled by BytecodeGenerator::BuildAssignment(). Bug: v8:12680, v8:8330, v8:10372 Change-Id: Ia5fea9090bc48b0af8a9c8d6f95174f7aa2d86f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509298Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#79583}
-
Marja Hölttä authored
Bug: v8:11111,chromium:1306929 Change-Id: I26e4c5d7e87f75844e60952f30e8fe20189910c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535783Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79577}
-
David Sanders authored
Change-Id: Ia5066069304ae2eee442cd3e224c0c0c0816fd75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3543179Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#79574}
-
Victor Gomes authored
Bug: v8:7700 Change-Id: Icd9c0ce6fce727759beec246253dbd16756abc09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545166 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79567}
-
Nico Hartmann authored
This reverts commit aaedd8b7. Changes in the reland: The inital problem was caused by nodes that were removed during SL because they are no-ops but have an effect on typing (in the repro, this was e.g. PlainPrimitiveToNumber). The reland introdocues a new operator SLVerifierHint that is used exclusively in SL to provide hints to the verifier and that solves this problem. SLVerifierHint also replaces the previous use of TypeGuard to type constant nodes for the verifier. Bug: v8:12619, chromium:1302572 Change-Id: I0957645c03d8b7c26cd6d630a1ecbd0a6a8223ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512574Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#79564}
-
- 21 Mar, 2022 3 commits
-
-
jameslahm authored
When cross realm invoke PromiseConstructor and realm not allowed to CrossRealmAccess, PromiseConstructor will silently return undefined, which will cause crash in ConstructJSWithTarget type cast, Change to throw type error when HasAccessCheck failed. Bug: v8:12705 Change-Id: I18f697a1897c31163dd60522db12449033419f9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3521174Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79548}
-
jameslahm authored
Originally, 'Promise()' without 'new' will throw "undefined is not a promise". Now it will throw "Promise constructor cannot be invoked without 'new'". Bug: v8:10817 Change-Id: Ic8b72a902ed395e44dbb32ccf96a2130a4a9422f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3459924Reviewed-by:
Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79547}
-
Jakob Gruber authored
This implements the last bits of basic concurrent Maglev compilation. When jobs have been processed, schedule an interrupt to trigger codegen and building the Code object on the main thread. Changed since the initial version: - Put the include behind V8_ENABLE_MAGLEV. - Skip 18.js until we have deterministic test helpers for concurrent tiering. Bug: v8:7700 Change-Id: Ibc103f097fe00f7df93a33a785939e43901f3734 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3536662Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#79539}
-
- 19 Mar, 2022 1 commit
-
-
Milad Fa authored
Will re-enable once a few issues have been resolved. Change-Id: Ieed60efcb6d59cc5ca10931913dd4d9ffea8b9f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532202Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#79533}
-
- 18 Mar, 2022 1 commit
-
-
jameslahm authored
There are problems calling WaitForRunningWorkers when we call quit(). First, suppose the main thread first calls quit(), and the worker thread calls quit() after the main thread calls quit(), then sched_yield to wait for quit_once_ updated to ONCE_STATE_DONE. However the main thread is WaitForRunningWorkers to wait for the worker thread to join, thus causing deadlock. Second, suppose the worker thread calls quit() and empty the running_workers_ by WaitForRunningWorkers, then the main thread calls `onExit(isolate, true)` to dispose the platform and other global data, which will crash other running workers. Bug: v8:12219 Change-Id: I333e5aad431daefb1c163f69e66d8e9d5e9bf754 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3518908Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79525}
-
- 17 Mar, 2022 5 commits
-
-
Manos Koukoutos authored
Bug: v8:12697 Change-Id: I124f2f0fd3c98d6a5233a0e2a8236a2b15d791fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532261 Auto-Submit: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#79518}
-
jameslahm authored
In JSCallReducer::ReduceArrayPrototypeShift, add Unsigned32 TypeGuard for index Node used in fast path, avoid representing kRepFloat64 (Range(1, inf)) to kRepWord64 when converting input for kLoadElement. Bug: v8:12632 Change-Id: I2e4b00840dc5462e4351e13a372c33b6272b9ea1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3528373Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#79514}
-
王澳 authored
This reverts commit 9f9f36f8. Reason for revert: regressed ai-astar on the M1 Original change's description: > [call reducer] inline Array.prototype.indexOf/includes in js-call-reducer. > > - inline Array.prototype.indexOf in js-call-reducer > - inline Array.prototype.includes in js-call-reducer > > Bug: v8:12390 > Change-Id: Idb5669da3019f0f56af0084fccd1d616d4c5098e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3473994 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79461} Bug: v8:12390, chromium:1306250 Change-Id: I91c666c2f56c30db4f43bb009ee6206ad219f51a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532399 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#79511}
-
Michael Achenbach authored
Bug: chromium:1292013 Change-Id: If50c18249afe8b75154d4b111485280d158a5582 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3525137Reviewed-by:
Liviu Rau <liviurau@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/main@{#79506}
-
Shu-yu Guo authored
Bug: v8:12547 Change-Id: Ie27831b793f214368a003adac24b7c92f1a5fc11 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3518426Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#79504}
-
- 16 Mar, 2022 1 commit
-
-
Marja Hölttä authored
Bug: v8:11111 Change-Id: Id6eafbd3a70cd8edd552d06942517ffaf413f568 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497815Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79494}
-
- 15 Mar, 2022 1 commit
-
-
Clemens Backes authored
This reverts commit 6e2c9bb2. Reason for revert: Fails layout test: external/wpt/wasm/serialization/arraybuffer/transfer.window.html Original change's description: > [serialize] copy bytes for non detachable array_buffer > in WriteJSArrayBuffer when array_buffer is not in > array_buffer_transfer_map_ > > According to https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal > steps 13.3.2-4, should normally serialize array buffer which > is not detachable > > Bug: v8:12703 > Change-Id: I4554c5d07ae85e1a96a728ebba04c6a071575f6f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3518910 > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79466} Bug: v8:12703 Change-Id: I548ab191ab7d0f8fa699958396a5e32e34d39568 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3524742 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#79474}
-
- 14 Mar, 2022 6 commits
-
-
jameslahm authored
strict parameters error before parse parentheses expression in ParsePrimaryExpression clear last next_arrow_function_info tracked strict parameters error, avoid throw syntax error when parse arrow function nested in a parentheses expression. Bug: v8:12688 Change-Id: Ib190ff5e04c9a83329c59421e9dd44f5a5907b07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516729Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#79468}
-
jameslahm authored
in WriteJSArrayBuffer when array_buffer is not in array_buffer_transfer_map_ According to https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal steps 13.3.2-4, should normally serialize array buffer which is not detachable Bug: v8:12703 Change-Id: I4554c5d07ae85e1a96a728ebba04c6a071575f6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3518910Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79466}
-
Marja Hölttä authored
The fuzzers were passing the flag --es-staging which doesn't exist. This CL updates them to pass the flag --harmony which does exist. Change-Id: I02c83026e5b9bdf49e51e700f16702bf56cd49e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3522064Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79464}
-
jameslahm authored
- inline Array.prototype.indexOf in js-call-reducer - inline Array.prototype.includes in js-call-reducer Bug: v8:12390 Change-Id: Idb5669da3019f0f56af0084fccd1d616d4c5098e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3473994Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79461}
-
Marja Hölttä authored
Bug: v8:11525 Change-Id: I582f17d6ecfa47394bc29692f788c5119aac5ce9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516745Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79458}
-
JianxiaoLuIntel authored
This CL fixes a deopt loop that might happen in case of mixing Number with BigInt in bitwise binary operations. Bug: v8:12693 Change-Id: Ib6a08d0c74a954ade3719bd6bd49ca2988d88e69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3505542Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com> Cr-Commit-Position: refs/heads/main@{#79456}
-
- 10 Mar, 2022 2 commits
-
-
Marja Hölttä authored
Bug: v8:11525 Change-Id: I0580787252ab235222e9b9fb2d677015794207eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3506485Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#79441}
-
Shu-yu Guo authored
Atomics.load and Atomics.store now accept string field names as the 2nd argument when the 1st argument is a shared struct. Currently these are implemented in C++ and not yet in CSA. Bug: v8:12547 Change-Id: Ideeafc13fb6a925540edf3dc17428c8e50bcee79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510837 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#79431}
-
- 09 Mar, 2022 5 commits
-
-
legendecas authored
NewSpace page operations like RemovePage, PrependPage, and EnsureCurrentCapacity should account for committed page size. This may happen when a page was promoted from the new space to old space on mark-compact. Also, add DCHECKs on Commit and Uncommit to ensure the final committed page size is the same as the current state. Bug: v8:12657 Change-Id: I7aebc1fd3f51f177ae2ef6420f757f0c573e126b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3504766Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Chengzhong Wu <legendecas@gmail.com> Cr-Commit-Position: refs/heads/main@{#79426}
-
legendecas authored
HeapObjectIterator creates a SafepointScope which requires the heap to allow garbage collection. This collides with the outer DisallowGarbageCollection scope. HeapObjectIterator already ensures there is no allocation during its lifetime, so there is no need to create an outer DisallowGarbageCollection scope. Code::source_position_table requires their kind not equals to CodeKind::BASELINE. This also exposes the statistics extension through flag --expose-statistics. Bug: v8:12657 Change-Id: I1bf11cf499285a742dd99ec8c228ebc36152b597 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3496552Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Chengzhong Wu <legendecas@gmail.com> Cr-Commit-Position: refs/heads/main@{#79425}
-
Clemens Backes authored
This is a reland of commit a664aef0. The test is made ~25x faster by using integer parameters instead of floating point. Original change's description: > [asm] Reject import calls with too many parameters > > The asm parser was missing a check for too many parameters for calls to > imported functions. For regular functions this check implicitly existed > because the limit was checked at the function declaration, and the call > site needs to match the declared parameter count. > > R=mslekova@chromium.org > > Bug: chromium:1302596 > Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393 > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79415} Bug: chromium:1302596 Change-Id: I138561742b38939a1c2c9a69a6fa508d4f3a028d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513613Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79424}
-
Clemens Backes authored
This reverts commit a664aef0. Reason for revert: Times out on CFI: https://cr-buildbucket.appspot.com/build/8820170241901030897 Original change's description: > [asm] Reject import calls with too many parameters > > The asm parser was missing a check for too many parameters for calls to > imported functions. For regular functions this check implicitly existed > because the limit was checked at the function declaration, and the call > site needs to match the declared parameter count. > > R=mslekova@chromium.org > > Bug: chromium:1302596 > Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393 > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79415} Bug: chromium:1302596 Change-Id: I743647f739e0cc93b2e99145086dbbb7d2660c79 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512853 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#79417}
-
Clemens Backes authored
The asm parser was missing a check for too many parameters for calls to imported functions. For regular functions this check implicitly existed because the limit was checked at the function declaration, and the call site needs to match the declared parameter count. R=mslekova@chromium.org Bug: chromium:1302596 Change-Id: I0d35e70a66d682ee8fdecf5c8ea4d2b1419ce684 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509393Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79415}
-
- 08 Mar, 2022 2 commits
-
-
Joyee Cheung authored
For background and reasoning, see https://docs.google.com/document/d/1jvSEvXFHRkxg4JX-j6ho3nRqAF8vZI2Ai7RI8AY54gM/edit This is the first step towards pulling the DefineNamedOwn operation out of StoreIC. Summary of the renamed identifiers: Bytecodes: - StaNamedProperty -> SetNamedProperty: calls StoreIC and emitted for normal named property sets like obj.x = 1. - StaNamedOwnProperty -> DefineNamedOwnProperty: calls DefineNamedOwnIC (previously StoreOwnIC), and emitted for initialization of named properties in object literals and named public class fields. - StaKeyedProperty -> SetKeyedProperty: calls KeyedStoreIC and emitted for keyed property sets like obj[x] = 1. - StaKeyedPropertyAsDefine -> DefineKeyedOwnProperty: calls DefineKeyedOwnIC (previously KeyedDefineOwnIC) and emitted for initialization of private class fields and computed public class fields. - StaDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral: calls DefineKeyedOwnPropertyInLiteral runtime function (previously DefineDataPropertyInLiteral) and emitted for initialization of keyed properties in object literals and static class initializers. (note that previously the StoreDataPropertyInLiteral runtime function name was taken by object spreads and array literal creation instead) - LdaKeyedProperty -> GetKeyedProperty, LdaNamedProperty -> GetNamedProperty, LdaNamedPropertyFromSuper -> GetNamedPropertyFromSuper: we drop the Sta prefix for the property store operations since the accumulator use is implicit and to make the wording more natural, for symmetry the Lda prefix for the property load operations is also dropped. opcodes: - (JS)StoreNamed -> (JS)SetNamedProperty: implements set semantics for named properties, compiled from SetNamedProperty (previously StaNamedProperty) and lowers to StoreIC or Runtime::kSetNamedProperty - (JS)StoreNamedOwn -> (JS)DefineNamedOwnProperty: implements define semantics for initializing named own properties in object literal and public class fields, compiled from DefineNamedOwnProperty (previously StaNamedOwnProperty) and lowers to DefineNamedOwnIC (previously StoreOwnIC) - (JS)StoreProperty -> (JS)SetKeyedProperty: implements set semantics for keyed properties, only compiled from SetKeyedProperty(previously StaKeyedProperty) and lowers to KeyedStoreIC - (JS)DefineProperty -> (JS)DefineKeyedOwnProperty: implements define semantics for initialization of private class fields and computed public class fields, compiled from DefineKeyedOwnProperty (previously StaKeyedPropertyAsDefine) and calls DefineKeyedOwnIC (previously KeyedDefineOwnIC). - (JS)StoreDataPropertyInLiteral -> (JS)DefineKeyedOwnPropertyInLiteral: implements define semantics for initialization of keyed properties in object literals and static class initializers, compiled from DefineKeyedOwnPropertyInLiteral (previously StaDataPropertyInLiteral) and calls the DefineKeyedOwnPropertyInLiteral runtime function (previously DefineDataPropertyInLiteral). Runtime: - DefineDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral: following the bytecode/opcodes change, this is used by DefineKeyedOwnPropertyInLiteral (previously StaDataPropertyInLiteral) for object and class literal initialization. - StoreDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral_Simple: it's just a simplified version of DefineDataPropertyInLiteral that does not update feedback or perform function name configuration. This is used by object spread and array literal creation. Since we are renaming DefineDataPropertyInLiteral to DefineKeyedOwnPropertyInLiteral, rename this simplified version with a `_Simple` suffix. We can consider merging it into DefineKeyedOwnPropertyInLiteral in the future. See https://docs.google.com/document/d/1jvSEvXFHRkxg4JX-j6ho3nRqAF8vZI2Ai7RI8AY54gM/edit?disco=AAAAQQIz6mU - Other changes following the bytecode/IR changes IC: - StoreOwn -> DefineNamedOwn: used for initialization of named properties in object literals and named public class fields. - StoreOwnIC -> DefineNamedOwnIC - StoreMode::kStoreOwn -> StoreMode::kDefineNamedOwn - StoreICMode::kStoreOwn -> StoreICMode::kDefineNamedOwn - IsStoreOwn() -> IsDefineNamedOwn() - DefineOwn -> DefineKeyedOwn: IsDefineOwnIC() was already just IsDefineKeyedOwnIC(), and IsAnyDefineOwn() includes both named and keyed defines so we don't need an extra generic predicate. - StoreMode::kDefineOwn -> StoreMode::kDefineKeyedOwn - StoreICMode::kDefineOwn -> StoreICMode::kDefineKeyedOwn - IsDefineOwn() -> IsDefineKeyedOwn() - IsDefineOwnIC() -> IsDefineKeyedOwnIC() - Removing IsKeyedDefineOwnIC() as its now a duplicate of IsDefineKeyedOwnIC() - KeyedDefineOwnIC -> DefineKeyedOwnIC, KeyedDefineOwnGenericGenerator() -> DefineKeyedOwnGenericGenerator: make the ordering of terms more consistent - IsAnyStoreOwn() -> IsAnyDefineOwn(): this includes the renamed and DefineNamedOwn and DefineKeyedOwn. Also is_any_store_own() is removed since it's just a duplicate of this. - IsKeyedStoreOwn() -> IsDefineNamedOwn(): it's unclear where the "keyed" part came from, but it's only used when DefineNamedOwnIC (previously StoreOwnIC) reuses KeyedStoreIC, so rename it accordingly Interpreter & compiler: - BytecodeArrayBuilder: following bytecode changes - StoreNamedProperty -> SetNamedProperty - StoreNamedOwnProperty -> DefineNamedOwnProperty - StoreKeyedProperty -> SetKeyedProperty - DefineKeyedProperty -> DefineKeyedOwnProperty - StoreDataPropertyInLiteral -> DefineKeyedOwnPropertyInLiteral - FeedbackSlotKind: - kDefineOwnKeyed -> kDefineKeyedOwn: make the ordering of terms more consistent - kStoreOwnNamed -> kDefineNamedOwn: following the IC change - kStoreNamed{Sloppy|Strict} -> kSetNamed{Sloppy|Strict}: only used in StoreIC for set semantics - kStoreKeyed{Sloppy|Strict} -> kSetKeyed{Sloppy|Strict}: only used in KeyedStoreIC for set semantics - kStoreDataPropertyInLiteral -> kDefineKeyedOwnPropertyInLiteral: following the IC change - BytecodeGraphBuilder - StoreMode::kNormal, kOwn -> NamedStoreMode::kSet, kDefineOwn: this is only used by BytecodeGraphBuilder::BuildNamedStore() to tell the difference between SetNamedProperty and DefineNamedOwnProperty operations. Not changed: - StoreIC and KeyedStoreIC currently contain mixed logic for both Set and Define operations, and the paths are controlled by feedback. The plan is to refactor the hierarchy like this: ``` - StoreIC - DefineNamedOwnIC - SetNamedIC (there could also be a NamedStoreIC if that's helpful) - KeyedStoreIC - SetKeyedIC - DefineKeyedOwnIC - DefineKeyedOwnICLiteral (could be merged into DefineKeyedOwnIC) - StoreInArrayLiteralIC - ... ``` StoreIC and KeyedStoreIC would then contain helpers shared by their subclasses, therefore it still makes sense to keep the word "Store" in their names since they would be generic base classes for both set and define operations. - The Lda and Sta prefixes of bytecodes not involving object properties (e.g. Ldar, Star, LdaZero) are kept, since this patch focuses on property operations, and distinction between Set and Define might be less relevant or nonexistent for bytecodes not involving object properties. We could consider rename some of them in future patches if that's helpful though. Bug: v8:12548 Change-Id: Ia36997b02f59a87da3247f20e0560a7eb13077f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3481475Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#79409}
-
Victor Gomes authored
Bug: v8:7700 Change-Id: I5827612419b938758b25d1f504e4576016583d4c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497364Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#79404}
-