• Joyee Cheung's avatar
    [class] parse private accessors · a6dd7f1c
    Joyee Cheung authored
    This patch adds:
    
    - VariableMode::kPrivateMethod
    - VariableMode::kPrivateSetterOnly
    - VariableMode::kPrivateGetterOnly
    - VariableMode::kPrivateGetterAndSetter
    
    And replace the previous RequiresBrandCheckFlag by inferring
    whether the brand check is required from these VariableModes.
    It is then possible to check duplicate non-complementary
    accessors in the parsers and throw early errors, and allow
    complementary accessors to be associated with the same
    private name variable.
    
    This patch also adds the following AssignType:
    
    - PRIVATE_METHOD
    - PRIVATE_GETTER_ONLY
    - PRIVATE_SETTER_ONLY
    - PRIVATE_GETTER_AND_SETTER
    
    corresponding to the new VariableModes so that it's possible
    to generate specialized code for different type of
    private accessor declarations.
    
    Design doc: https://docs.google.com/document/d/10W4begYfs7lmldSqBoQBBt_BKamgT8igqxF9u50RGrI/edit
    
    Bug: v8:8330
    Change-Id: I0fb61b1be248630d1eadd74fb16d7d64a421f4c4
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695204
    Commit-Queue: Joyee Cheung <joyee@igalia.com>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62988}
    a6dd7f1c
Name
Last commit
Last update
..
bigint Loading commit data...
regress Loading commit data...
weakrefs Loading commit data...
array-concat-array-proto-getter.js Loading commit data...
array-concat-array-proto.js Loading commit data...
array-concat-object-proto-dict-getter.js Loading commit data...
array-concat-object-proto-dict.js Loading commit data...
array-concat-object-proto-generic-dict.js Loading commit data...
array-concat-object-proto.js Loading commit data...
array-flat-species.js Loading commit data...
array-flat.js Loading commit data...
array-flatMap-species.js Loading commit data...
array-flatMap.js Loading commit data...
array-sort-comparefn.js Loading commit data...
async-await-optimization.js Loading commit data...
async-for-of-non-iterable.js Loading commit data...
async-from-sync-iterator-next-tick-count.js Loading commit data...
async-from-sync-iterator-return-tick-count.js Loading commit data...
async-from-sync-iterator-throw-tick-count.js Loading commit data...
async-from-sync-iterator.js Loading commit data...
async-generators-basic.js Loading commit data...
async-generators-resume-return.js Loading commit data...
async-generators-return.js Loading commit data...
async-generators-yield.js Loading commit data...
async-iterators-resolve.js Loading commit data...
atomics-notify.js Loading commit data...
atomics-value-check.js Loading commit data...
atomics.js Loading commit data...
bigintarray-keyedstore-tobigint.js Loading commit data...
block-lazy-compile.js Loading commit data...
dataview-accessors.js Loading commit data...
for-await-of.js Loading commit data...
function-tostring.js Loading commit data...
futex.js Loading commit data...
generators-reduced.js Loading commit data...
generators.js Loading commit data...
global-configurable.js Loading commit data...
global-writable.js Loading commit data...
global.js Loading commit data...
harmony-string-pad-end.js Loading commit data...
harmony-string-pad-start.js Loading commit data...
hashbang-eval.js Loading commit data...
import-from-compilation-errored.js Loading commit data...
import-from-evaluation-errored.js Loading commit data...
import-from-fetch-errored.js Loading commit data...
import-from-instantiation-errored.js Loading commit data...
module-parsing-eval.mjs Loading commit data...
modules-import-1.mjs Loading commit data...
modules-import-10.mjs Loading commit data...
modules-import-11.mjs Loading commit data...
modules-import-12.mjs Loading commit data...
modules-import-13.mjs Loading commit data...
modules-import-14.mjs Loading commit data...
modules-import-15.mjs Loading commit data...
modules-import-16.mjs Loading commit data...
modules-import-17.mjs Loading commit data...
modules-import-2.mjs Loading commit data...
modules-import-3.mjs Loading commit data...
modules-import-4.mjs Loading commit data...
modules-import-5.mjs Loading commit data...
modules-import-6.mjs Loading commit data...
modules-import-7.mjs Loading commit data...
modules-import-8.mjs Loading commit data...
modules-import-9.mjs Loading commit data...
modules-import-large.mjs Loading commit data...
modules-import-meta.mjs Loading commit data...
modules-import-namespace.mjs Loading commit data...
modules-skip-1.mjs Loading commit data...
modules-skip-10.mjs Loading commit data...
modules-skip-11.mjs Loading commit data...
modules-skip-12.mjs Loading commit data...
modules-skip-13.mjs Loading commit data...
modules-skip-2.mjs Loading commit data...
modules-skip-3.mjs Loading commit data...
modules-skip-4.mjs Loading commit data...
modules-skip-5.mjs Loading commit data...
modules-skip-6.mjs Loading commit data...
modules-skip-7.mjs Loading commit data...
modules-skip-8.mjs Loading commit data...
modules-skip-9.mjs Loading commit data...
modules-skip-empty.mjs Loading commit data...
modules-skip-export-import-meta.mjs Loading commit data...
modules-skip-large1.mjs Loading commit data...
modules-skip-large2.mjs Loading commit data...
numeric-separator.js Loading commit data...
object-fromentries.js Loading commit data...
optional-catch-binding-breaks.js Loading commit data...
optional-catch-binding.js Loading commit data...
private-accessors.js Loading commit data...
private-fields-ic.js Loading commit data...
private-fields-special-object.js Loading commit data...
private-fields-static.js Loading commit data...
private-fields.js Loading commit data...
private-methods.js Loading commit data...
private-symbols.js Loading commit data...
private.js Loading commit data...
promise-all-settled.js Loading commit data...
promise-prototype-finally.js Loading commit data...
public-instance-class-fields.js Loading commit data...
public-static-class-fields.js Loading commit data...
regexp-change-exec.js Loading commit data...
regexp-dotall.js Loading commit data...
regexp-named-captures.js Loading commit data...
regexp-overriden-exec.js Loading commit data...
regexp-property-binary.js Loading commit data...
regexp-property-char-class.js Loading commit data...
regexp-property-emoji-flag-sequence-generated.js Loading commit data...
regexp-property-emoji-keycap-sequence-generated.js Loading commit data...
regexp-property-emoji-modifier-sequence-generated.js Loading commit data...
regexp-property-emoji-tag-sequence-generated.js Loading commit data...
regexp-property-emoji-zwj-sequence-generated.js Loading commit data...
regexp-property-enumerated.js Loading commit data...
regexp-property-exact-match.js Loading commit data...
regexp-property-general-category.js Loading commit data...
regexp-property-invalid.js Loading commit data...
regexp-property-lu-ui.js Loading commit data...
regexp-property-lu-ui0.js Loading commit data...
regexp-property-lu-ui1.js Loading commit data...
regexp-property-lu-ui2.js Loading commit data...
regexp-property-lu-ui3.js Loading commit data...
regexp-property-lu-ui4.js Loading commit data...
regexp-property-lu-ui5.js Loading commit data...
regexp-property-lu-ui6.js Loading commit data...
regexp-property-lu-ui7.js Loading commit data...
regexp-property-lu-ui8.js Loading commit data...
regexp-property-lu-ui9.js Loading commit data...
regexp-property-script-extensions.js Loading commit data...
regexp-property-scripts.js Loading commit data...
regexp-property-sequence.js Loading commit data...
regexp-property-special.js Loading commit data...
regress-generators-resume.js Loading commit data...
set-prototype-of.js Loading commit data...
sharedarraybuffer-stress.js Loading commit data...
sharedarraybuffer-worker-gc-stress.js Loading commit data...
sharedarraybuffer.js Loading commit data...
string-matchAll-deleted-matchAll.js Loading commit data...
string-matchAll.js Loading commit data...
symbol-async-iterator.js Loading commit data...
symbol-description.js Loading commit data...
to-length.js Loading commit data...
to-name.js Loading commit data...
to-number.js Loading commit data...
to-string.js Loading commit data...
trailing-commas-length.js Loading commit data...
well-formed-json-stringify-checked.js Loading commit data...
well-formed-json-stringify-unchecked.js Loading commit data...