commit | bc324dbd9bbb1d24700a9503dc35d7766da63d26 | [log] [tgz] |
---|---|---|
author | Sathya Gunasekaran <gsathya@chromium.org> | Tue Oct 16 06:49:20 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Oct 16 11:02:21 2018 |
tree | aeacbd217ea8a8fec1b51c1056208f9105c7f92d | |
parent | 499d7c5a85c25925afa8ef0c62948bcab38b416e [diff] |
[class] Fix class field name initialization Previously when class names were computed and set as part of StoreDataPropertyInLiteral calls, it was observable to static fields as these static fields are initialized right after the classes were constructed but before the class names were installed. This caused the name property to be undefined for this case. Instead, this patch always forces the creation of a name property on the class constructor when static class fields are used. This patch does kill the class boilerplate optimization, but currently all static class fields are installed using a runtime call to CreateDataProperty so this isn't any worse when using static class fields. In the future, this can be optimized away by storing the name on the boilerplate. There is spec discussion here: https://github.com/tc39/proposal-class-fields/issues/85 There isn't a resolution yet, there's still discussion about whether to have the name be undefined always for static class field initializers. But, I don't think that's useful as it would always kill our boilerplate optimization (like this patch does ..., but without the future optimization potential). Bug: v8:5367 Change-Id: I14afdf7ece3f2d9fa3c659d2c0bc3806e0b17abb Reviewed-on: https://chromium-review.googlesource.com/c/1281002 Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56686}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://github.com/v8/v8/wiki
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies. To stay up to date, run
git pull origin gclient sync
For fetching all branches, add the following into your remote configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/*
Please follow the instructions mentioned on the V8 wiki.