[Parsing] Create canononical ScopeInfos in the read-only space.

Create canonical ScopeInfos for the global this binding and empty function in
the read only space, rather than creating them during bootstrapping for each
native context. This saves some memory, and also means we don't need to access
the native context to get the global this binding in when deserializing a
scope info, which is important since parsing should be native context independent.

BUG=chromium:992063

Change-Id: I800f576e8e9b95d46e043cba0c1a03ae19a683c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1748690
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63174}
11 files changed
tree: 32faf429659471cb1fe40bd0be13e5636d9a915c
  1. benchmarks/
  2. build_overrides/
  3. custom_deps/
  4. docs/
  5. gni/
  6. include/
  7. infra/
  8. samples/
  9. src/
  10. test/
  11. testing/
  12. third_party/
  13. tools/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .flake8
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gn
  22. .vpython
  23. .ycm_extra_conf.py
  24. AUTHORS
  25. BUILD.gn
  26. ChangeLog
  27. CODE_OF_CONDUCT.md
  28. codereview.settings
  29. COMMON_OWNERS
  30. DEPS
  31. ENG_REVIEW_OWNERS
  32. INFRA_OWNERS
  33. INTL_OWNERS
  34. LICENSE
  35. LICENSE.fdlibm
  36. LICENSE.strongtalk
  37. LICENSE.v8
  38. LICENSE.valgrind
  39. MIPS_OWNERS
  40. OWNERS
  41. PPC_OWNERS
  42. PRESUBMIT.py
  43. README.md
  44. S390_OWNERS
  45. WATCHLISTS
README.md

V8 JavaScript Engine

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://v8.dev/docs

Getting the Code

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/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.