• Seth Brenith's avatar
    Remove 'length' field from ScopeInfo · f731e13f
    Seth Brenith authored
    ScopeInfo has a vestigial 'length' field from when it used to be a
    FixedArray. This change removes that field, which saves some memory.
    
    More specifically:
    
    - Make ScopeInfo inherit from HeapObject, not FixedArrayBase which
      supplied the 'length' field.
    - Privatize the FixedArray-style functions that provide access to
      ScopeInfo fields by index, and move them from scope-info-inl.h to
      scope-info.cc. Those functions are still used pretty heavily during
      initialization (ScopeInfo::Create, etc.), but at least we can avoid
      presenting them to the rest of the world.
    - Change FactoryBase::NewScopeInfo to allocate the updated object shape.
      It maintains the existing behavior of filling the newly-allocated
      object with undefined, even though that's not a valid ScopeInfo and
      further initialization is required.
    - Move part of AccessorAssembler::ScriptContextTableLookup into a new
      Torque macro, because it used to rely on casting ScopeInfo to
      FixedArrayBase.
    - In V8HeapExplorer::AddEntry, don't claim that ScopeInfo objects are
      arrays. I think it makes more sense to list them under "(system)" in
      the dev tools, like most other V8 internal types.
    
    Bug: v8:8952
    Change-Id: I8278e3a90027d4409f0d268da0fe7080754c6b8c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2601880Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
    Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
    Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    Cr-Commit-Position: refs/heads/master@{#72830}
    f731e13f
Name
Last commit
Last update
.github Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
RISCV_OWNERS Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...