- 25 Mar, 2019 1 commit
-
-
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}
-
- 19 Mar, 2019 1 commit
-
-
Benedikt Meurer authored
This change significantly improves the performance of string concatenation in optimized code for the case where the resulting string is represented as a ConsString. On the relevant test cases we go from serializeNaive: 10762 ms. serializeClever: 7813 ms. serializeConcat: 10271 ms. to serializeNaive: 10278 ms. serializeClever: 5533 ms. serializeConcat: 10310 ms. which represents a 30% improvement on the "clever" benchmark, which tests specifically the ConsString creation performance. This was accomplished via a couple of different steps, which are briefly outlined here: 1. The empty_string gets its own map, so that we can easily recognize and handle it appropriately in the TurboFan type system. This allows us to express (and assert) that the inputs to NewConsString are non-empty strings, making sure that TurboFan no longer creates "crippled ConsStrings" with empty left or right hand sides. 2. Further split the existing String types in TurboFan to be able to distinguish between OneByte and TwoByte strings on the type system level. This allows us to avoid having to dynamically lookup the resulting ConsString map in case of ConsString creation (i.e. when we know that both input strings are OneByte strings or at least one of the input strings is TwoByte). 3. We also introduced more finegrained feedback for the Add bytecode in the interpreter, having it collect feedback about ConsStrings, specifically ConsOneByteString and ConsTwoByteString. This feedback can be used by TurboFan to only inline the relevant code for what was seen so far. This allows us to remove the Octane/Splay specific magic in JSTypedLowering to detect ConsString creation, and instead purely rely on the feedback of what was seen so far (also making it possible to change the semantics of NewConsString to be a low-level operator, which is only introduced in SimplifiedLowering by looking at the input types of StringConcat). 4. On top of the before mentioned type and interpreter changes we added new operators CheckNonEmptyString, CheckNonEmptyOneByteString, and CheckNonEmptyTwoByteString, which perform the appropriate (dynamic) checks. There are several more improvements that are possible based on this, but since the change was already quite big, we decided not to put everything into the first change, but do some follow up tweaks to the type system, and builtin optimizations later. Tbr: mstarzinger@chromium.org Bug: v8:8834, v8:8931, v8:8939, v8:8951 Change-Id: Ia24e17c6048bf2b04df966d3cd441f0edda05c93 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Doc: https://bit.ly/fast-string-concatenation-in-javascript Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499497 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60318}
-
- 04 Mar, 2019 1 commit
-
-
Benedikt Meurer authored
In the early days of Chrome when we used WebKit there was no support for ASCII strings on the C++ side, so we put a hint onto these two-byte strings that said "string only contains one byte data", such that internally in V8 when these were involved in string operations, we could instead create the *cheaper* one byte strings. Nowadays Blink properly supports one-byte string representations and this additional hint only comes with overhead, since we check it in quite a few places (i.e. on the hot path for string concatenation), plus we end up consuming more memory due to the additional string maps. Removing the hint also frees one bit in the InstanceType zoo for strings. This alone improves performance on the `bench-dom-serialize.js` test case by around **3%**. Tbr: mstarzinger@chromium.org Bug: v8:6622, v8:8834, v8:8939 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff Doc: https://bit.ly/fast-string-concatenation-in-javascript Reviewed-on: https://chromium-review.googlesource.com/c/1498478 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#60006}
-
- 13 Feb, 2019 1 commit
-
-
Simon Zünd authored
The StackTraceFrame object will be used in a future CL to replace StackFrameInfo as the object returned by the inspector API, as well as the object used in the stack_frame_cache. The object itself is a simple wrapper around a reference to a FrameArray plus an index, as well as a reference to a StackFrameInfo object that will get lazily initialized. This is the first step towards unifying stack trace representation and collection. R=jgruber@chromium.org Bug: v8:8742 Change-Id: Iefc7d734fd274ffd164ddf6f43c226531aa26d4c Reviewed-on: https://chromium-review.googlesource.com/c/1458017 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59544}
-
- 06 Feb, 2019 1 commit
-
-
Yang Guo authored
This reverts commit b1eb340d. Bug: v8:8761 Change-Id: Icd952e16e85a7beb07874cb8979eec4cf1991a14 Reviewed-on: https://chromium-review.googlesource.com/c/1454922Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59391}
-
- 01 Feb, 2019 2 commits
-
-
Michael Starzinger authored
This reverts commit a1b431d7. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/22809 Original change's description: > [serializer] share class positions tuple across contexts > > Class positions is a struct that stores the start and end positions of a class > literal. It is stored both on class objects, and the template used to > instantiate class objects. > > The template is reachable from the bytecode array and therefore serialized by > the startup serializer. Class objects are context-dependent and therefore > serialized by the partial serializer. Serializing class positions from both > serializers violates the assumption that we don't serialize any object twice. > > R=gsathya@chromium.org > > Bug: v8:8761 > Change-Id: If22c554cc7396d63998a015454ce0c67a7d2e05c > Reviewed-on: https://chromium-review.googlesource.com/c/1444956 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59292} TBR=yangguo@chromium.org,mstarzinger@chromium.org,gsathya@chromium.org Change-Id: I9f3fd1b29b5991b450223f8b27dfc7aa7e5a3171 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8761 Reviewed-on: https://chromium-review.googlesource.com/c/1450116Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59300}
-
Yang Guo authored
Class positions is a struct that stores the start and end positions of a class literal. It is stored both on class objects, and the template used to instantiate class objects. The template is reachable from the bytecode array and therefore serialized by the startup serializer. Class objects are context-dependent and therefore serialized by the partial serializer. Serializing class positions from both serializers violates the assumption that we don't serialize any object twice. R=gsathya@chromium.org Bug: v8:8761 Change-Id: If22c554cc7396d63998a015454ce0c67a7d2e05c Reviewed-on: https://chromium-review.googlesource.com/c/1444956Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59292}
-
- 30 Jan, 2019 1 commit
-
-
Marja Hölttä authored
This replaces WeakFactory with FinalizationGroup. New API is here: https://weakrefs.netlify.com/ BUG=v8:8179 Change-Id: I8c1c4a70deb42581d17117423dd29d93bdd35cb0 Reviewed-on: https://chromium-review.googlesource.com/c/1435938Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#59204}
-
- 11 Jan, 2019 1 commit
-
-
Camillo Bruni authored
Drive-by-fix: - Add several iterator instance types to user objects - Add JSProxy instance type to user objects - Rename *PRE_PARSED_SCOPE* to *PREPARSE_DATA* Change-Id: Ia1304871c91bb4e7e46ae0aef6084ded985b9a9f Reviewed-on: https://chromium-review.googlesource.com/c/1405040Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58745}
-
- 29 Nov, 2018 1 commit
-
-
Michael Starzinger authored
This introduces a dedicated instance type for exception tags. The main motivation is to reduce their footprint and getting rid of a temporary workaround that used the {JSObject} type for this purpose. R=clemensh@chromium.org BUG=v8:8091 Change-Id: Id5678bce513f2ac086c7380bd803011b11d5050e Reviewed-on: https://chromium-review.googlesource.com/c/1354464Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57943}
-
- 27 Nov, 2018 1 commit
-
-
Yang Guo authored
This is an attempt to reland https://crrev.com/1d726111ab7087a5, that was reverted at https://crrev.com/0a820125230bec24. Tbr: bmeurer@chromium.org Bug: chromium:887920, v8:7253 Change-Id: I785417de7d0560b93bda5ade623fa5be3647d7dd Reviewed-on: https://chromium-review.googlesource.com/c/1350530 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57865}
-
- 26 Nov, 2018 1 commit
-
-
Ulan Degenbaev authored
This patch gives DescriptorArray its own visitor id and its own layout that is independent from the layout of WeakFixedArray. This allows us to use raw 16-bit integers for keeping track of the number of descriptors (total, non-slack, and marked). As a side-effect, we save one word per descriptor array on 64-bit. v8:8486 Change-Id: If8389dde446319e5b3491abc948b52539dba235c Reviewed-on: https://chromium-review.googlesource.com/c/1349245 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57845}
-
- 22 Nov, 2018 2 commits
-
-
Dan Elphick authored
Adds a new field rare_data of type FunctionTemplateRareData to FunctionTemplateInfo and moves 8 others which are unset on 90% of FunctionTemplateInfo objects to this field. Getters like prototype_template() are changed to GetPrototypeTemplate() to indicate they're not trivial. The setters are replaced with static methods (e.g. SetPrototypeTemplate) that take an Isolate and the template object, since they can now perform allocation. Bug: v8:8478 Change-Id: If72b132ade4ca4a3f803f913761c9caddc0e9dd6 Reviewed-on: https://chromium-review.googlesource.com/c/1342519 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#57725}
-
Yang Guo authored
This reverts commit 1d726111. Reason for revert: This breaks a layout test, and blocks V8 roll https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/135831 Original change's description: > Implement Faster MicrotaskQueue Step 2 > > This is an implementation of https://bit.ly/v8-faster-microtask-queues > step 2. > > This CL overhauls MicrotaskQueue class, the previous one is on V8 heap, > and the new one is on C++ heap. > > Benchmark: > This CL improves a benchmark score around promise by 5~23%. > https://github.com/v8/promise-performance-tests > https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737 > > Bug: chromium:887920, v8:7253 > Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9 > Reviewed-on: https://chromium-review.googlesource.com/c/1290751 > Commit-Queue: Taiju Tsuiki <tzik@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57681} TBR=ulan@chromium.org,adamk@chromium.org,yangguo@chromium.org,ishell@chromium.org,bmeurer@chromium.org,tzik@chromium.org Change-Id: I639882a95fe63c029a2e53d610dc4133d1ac48f2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:887920, v8:7253 Reviewed-on: https://chromium-review.googlesource.com/c/1347473 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57711}
-
- 21 Nov, 2018 2 commits
-
-
Ross McIlroy authored
Moves allocation of the WasmModuleObject for asm.js code out of SyncCompileTranslatedAsmJS since that is called when we are compiling the native context independent SharedFunctionInfo and the WasmModuleObject requires a native context. Instead save the members required to create the object in the AsmWasmData and create it during module instantiation. Note: since the Wasm module is an implementation detail for asm_wasm code and isn't exposed, this doeesn't have semantic change for asm.js code. As part of this change, the AsmWasmData is changed from a FixedArray to a dedicated struct. Some logic is also moved from module-compiler to wasm-engine to make the seperation between Wasm SyncCompile and AsmJS SyncCompile more clear. BUG=chromium:900535,v8:8395 Change-Id: Ia48469c095b0688f210aa86e7430c9ab4ea4b26b Reviewed-on: https://chromium-review.googlesource.com/c/1345509 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57704}
-
tzik authored
This is an implementation of https://bit.ly/v8-faster-microtask-queues step 2. This CL overhauls MicrotaskQueue class, the previous one is on V8 heap, and the new one is on C++ heap. Benchmark: This CL improves a benchmark score around promise by 5~23%. https://github.com/v8/promise-performance-tests https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737 Bug: chromium:887920, v8:7253 Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9 Reviewed-on: https://chromium-review.googlesource.com/c/1290751 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57681}
-
- 20 Nov, 2018 1 commit
-
-
Igor Sheludko authored
for storing embedder data in native context. We can't use FixedArray because with enabled pointer compression it would not be possible to fit raw aligned pointer into 32-bits of a tagged value so we will need to store both tagged and raw data in this array and therefore custom visitor is required. Bug: v8:7703 Change-Id: Iae23d9aa76c79a572d5f0f1f3c0f924e8e407dd0 Reviewed-on: https://chromium-review.googlesource.com/c/1340295 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57639}
-
- 13 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I52660eeda1bd299953793af9af1395f47e89072e Reviewed-on: https://chromium-review.googlesource.com/c/1331155 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57454}
-
- 12 Nov, 2018 2 commits
-
-
Sathya Gunasekaran authored
Bug: v8:6443, v8:7569 Change-Id: Iee039eddd07a7bbc38c8e9f7deca00d5183e702a Reviewed-on: https://chromium-review.googlesource.com/c/1329697Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#57438}
-
Sathya Gunasekaran authored
This is the larger dictionary specialized for Name. To be used as a property backing store. More methods and tests will be added in the future as it reaches parity with NameDictionary. Bug: v8:6443, v8:7569 Change-Id: I8f5d88b2f6f4e14d4851548566ffa9f59535358b Reviewed-on: https://chromium-review.googlesource.com/c/1329204Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57430}
-
- 05 Nov, 2018 1 commit
-
-
Marja Hölttä authored
- Add the WeakRef class and its deref() function. - Add WeakFactory.prototype.makeRef - Implement the "keep during job" behavior for WeakRef constructor and deref(). - Here we keep the targets alive longer than until the end of the job (microtask), contradicting the spec. However, this is probably the indended behavior, see https://github.com/tc39/proposal-weakrefs/issues/39 . BUG=v8:8179 Change-Id: I41990d41ac1799e34f675d8431b9a7aa7ed3d48d Reviewed-on: https://chromium-review.googlesource.com/c/1306435 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57242}
-
- 29 Oct, 2018 1 commit
-
-
Marja Hölttä authored
- Store dirty JSWeakFactories in a heap root (not native context) - during GC there's no native context necessarily. - Schedule one microtask per JSWeakFactory. - Enter the context of the cleanup function before calling it. BUG=v8:8179 Change-Id: Icaa245a08a60dd7325af828858ebe55d842c5bf6 Reviewed-on: https://chromium-review.googlesource.com/c/1298899 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57081}
-
- 19 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
Instead of putting "Foo" as type into the list macro, and then extending to "type*" at consumer macros, put "Foo*" into the macro. This is in preparation for incremental transition to ObjectPtr, where some roots will return pointer types and others won't. When that migration is complete, everything will be uniform (and without "*") again. Bug: v8:3770 Change-Id: Ib4a9900b1fc6e59f5fc924b779ed7e94dc136ad0 Reviewed-on: https://chromium-review.googlesource.com/c/1285397 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#56798}
-
- 18 Oct, 2018 1 commit
-
-
Frank Tang authored
Design doc https://goo.gl/fgc2Cp Bug: v8:6891 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8bc5ea3137fd1b66213403ae9ea3461f40efc977 Reviewed-on: https://chromium-review.googlesource.com/c/1257923 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56757}
-
- 11 Oct, 2018 1 commit
-
-
Benedikt Meurer authored
This JSAsyncFunctionObject represents the implicit generator object inside of async functions, and also holds the outer promise for the async functions. This in turn allows us to get rid of the .promise in the Parser / BytecodeGenerator completely, and will make it possible to build zero-cost async stack traces independent of the concrete synchronous part of the stack frame (which currently breaks in Node.js). In the bytecode all the async function operations now take this new JSAsyncFunctionObject instead of passing both the .generator_object and the .promise, which further simplifies and shrinks the bytecode. It also reduces the size of async function frames, potentially making the suspend/resume cheaper. This also changes `await` to use intrinsics instead of calling to special JSFunctions on the native context, and thus reduces the size of the native contexts. Drive-by-fix: Introduce a dedicated JSCreateAsyncFunctionObject operator to TurboFan. Bug: v8:7253, v8:7522 Change-Id: I2305302285156aa1f71328ecac70377abdd92c80 Ref: nodejs/node#11865 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1273049 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#56554}
-
- 09 Oct, 2018 1 commit
-
-
Marja Hölttä authored
Minimal implementation to run a simple example (see test) demonstrating the weakness of WeakCell. - Behind FLAG_harmony_weak_refs - Add WeakFactory & WeakCell, no WeakRef in this version. Spec clarifications: goo.gl/7ujBAk Design doc: goo.gl/nvof2T BUG=v8:8179 Change-Id: Iea2a7a2201e6380644235d190a542ab46e082382 Reviewed-on: https://chromium-review.googlesource.com/c/1238579Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56483}
-
- 05 Oct, 2018 1 commit
-
-
Frank Tang authored
Add the JSSegmenter and hook up constructor, supportedLocales and resolvedOptions only Desgin Doc- https://goo.gl/fgc2Cp TBR: bmeurer@chromium.org Bug: v8:6891 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ief25fb31d724c55c43c0fdf3080294fa83486e4f Reviewed-on: https://chromium-review.googlesource.com/c/1247362 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56393}
-
- 29 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
Change the way that the (internal) await closures store the link to the generator object by introducing a dedicated AwaitContext, which stores the generator object into the extension slot (instead of misusing a regular FunctionContext here). Also unify the allocation+initialization of these contexts in the await-related builtins (both for async functions and generators). The rationale behind this is that for (zero-cost) async stack traces, we will need to dig into these contexts and we can do better checking with a dedicated instance type there. As an additional benefit, we save one word per await context, since we just use (the otherwise unused) extension slot to remember the generator object. As yet another benefit we will never accidentally use any of these contexts in the regular scope chain lookups, meaning we can also catch bugs there. And last but not least the objects printing machinery understands these contexts now and can even print the generator object for AwaitContexts for short printing, which is really valuable for debugging. Tbr: ulan@chromium.org Bug: v8:7253, v8:7522, v8:8015 Change-Id: I86955f5701e694e8a10b91ebe5f52705aa90968d Reviewed-on: https://chromium-review.googlesource.com/1249491Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56301}
-
- 21 Sep, 2018 2 commits
-
-
Igor Sheludko authored
In order to workaround MSVC compilation issue this CL explicitly adds _TYPE suffixes to struct instance type names in STRUCT_LIST. Bug: v8:8015 Change-Id: If71a26e4cbd41bc7372bf127bd050159d0d324ce Reviewed-on: https://chromium-review.googlesource.com/1238496 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56149}
-
Igor Sheludko authored
... which are generated from ALLOCATION_SITE_LIST and DATA_HANDLER_LIST respectively. Bug: v8:8015 Change-Id: Ib729628e6b65ad98ff50234572f8edf2854f83ad Reviewed-on: https://chromium-review.googlesource.com/1238517 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56143}
-
- 10 Sep, 2018 1 commit
-
-
Michael Starzinger authored
This new instance type will be used for wrapper objects representing exported exceptions. Currently the objects are empty and only serve as an identity for exported exceptions. Eventually they will also need to reference the signature underlying the exception to perform a signature check upon import. R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions-import BUG=v8:8091 Change-Id: Ifdd561fc000090f4a985aeb45549fd7110849646 Reviewed-on: https://chromium-review.googlesource.com/1215166 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55752}
-
- 05 Sep, 2018 1 commit
-
-
Ujjwal Sharma authored
Port CreateBreakIterator and BreakIterator.prototype.resolvedOptions to C++, refactoring the entire class into another one called JSV8BreakIterator that would be a subclass of JSObject. TBR: benedikt@chromium.org Bug: v8:8111 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9bd1d82ec34b210c8ed59ea6576548d45a34b8d5 Reviewed-on: https://chromium-review.googlesource.com/1198946 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55627}
-
- 04 Sep, 2018 2 commits
-
-
tzik authored
As a step of Context-associated MicrotaskQueue [1], this CL adds a stub for v8::internal::MicrotaskQueue. [1]: https://docs.google.com/document/d/1oNNhXF66dmwyj5S6Ri_g1vmBZltK8rWvZo1Tgqj64Z0/edit?usp=sharing Tbr: bmeurer@chromium.org Bug: v8:8124 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ie3d86ca49d46749660ec1316e4ae051528076e97 Reviewed-on: https://chromium-review.googlesource.com/1192803 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55624}
-
Frank Tang authored
Bug: v8:7979 TBR: benedikt@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;luci.chromium.try:linux_chromium_rel_ng Change-Id: I9d5181c15b56de3bc5288d11bd83e55157c7a610 Reviewed-on: https://chromium-review.googlesource.com/1168518 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55621}
-
- 29 Aug, 2018 1 commit
-
-
Frank Tang authored
Bug: v8:8066 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I5511b6b9272804ebbb61bf2127a2ad51bfc70e28 Reviewed-on: https://chromium-review.googlesource.com/1179319Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#55481}
-
- 27 Aug, 2018 1 commit
-
-
Benoît Lizé authored
"short" external strings are not short, they mean that the external data pointer is not cached. Rename the various classes and objects to align with the actual meaning. Bug: chromium:877044 Change-Id: Ie3d5baa9ad352ac6ca89f5ba1d066760825e4beb Reviewed-on: https://chromium-review.googlesource.com/1185192Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#55432}
-
- 14 Aug, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I310d9453be8b90a82856c0d394442aad5527a3ae Reviewed-on: https://chromium-review.googlesource.com/1169167 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55105}
-
- 08 Aug, 2018 1 commit
-
-
Sathya Gunasekaran authored
This patch ports most of the Intl.Collator from JS to C++. The Intl.Collator object no longer stores all the resolved values. Instead these are looked up on demand as part of Intl.Collator.prototype.resolvedOptions(), saving several words. In the future, we can cache the result of the resolvedOptions as well. In this patch, we use ICU to do parsing of the unicode extension in the bcp47 language tag instead of using a custom extension parser. This patch also fixes several spec compliance bugs as well. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Iaaa7be4a628404da1bd83d882e04a2c6de70ebd9 Bug: v8:5751, v8:7480 Reviewed-on: https://chromium-review.googlesource.com/1165084 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54965}
-
- 06 Aug, 2018 1 commit
-
-
Sathya Gunasekaran authored
Previously, Intl.PluralRules was mostly implemented in JavaScript. This patch moves most of the constructor and parts of other methods to C++. The size of the Intl.PluralRules object is reduced by not storing MinimumIntegerDigits, MinimumFractionDigits, MaximumFractionDigits, MinimumSignificantDigits, MaximumSignificantDigits. Instead these are looked up from icu::DecimalFormat as required. Another optimziation is that we don't create the result of resolvedOptions when the Intl.PluralRules object is constructed, but instead defer until this method is called. In the future, we may want to cache the result. This patch also cleans up several error handling paths that shouldn't happen with ICU and instead just crashes should it ever happen. Bug: v8:5751 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I84c5aa6c25c35fe2d336693dee1b36bf3dcd4a79 Reviewed-on: https://chromium-review.googlesource.com/1158701 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jungshik Shin <jshin@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#54917}
-
- 24 Jul, 2018 1 commit
-
-
Frank Tang authored
Spec: http://tc39.github.io/proposal-intl-list-format/ Design Doc: go/add-intl.listformat-to-v8 Test: intl/list-format/* R=gsathya@chromium.org, mvstanton@chromium.org Bug: v8:7871 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I0dfb91b7806007e4f02f3b0438c30528c8143081 Reviewed-on: https://chromium-review.googlesource.com/1124343 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#54668}
-