Cleanups needed for this-scoping in arrow functions

Remove Variable::IsValidReference(), and the Variable::is_valid_ref_
member: This was "false" only for "this", and for internal variables.
For the first, VariableProxy::is_this() can be used for the check
instead; and for internal variables, it is guaranteed they they will
not be written to (because the V8 code does not do it, and they are
not accessible from JavaScript).

The "bool is_this" parameter of VariableProxy() constructor is
changed to use Variable::Kind. This will allow to later on adding
a parameter to create unresolved variables of any kind, which in
turn will be used to make references to "this" initially unresolved,
and use the existing variable resolution mechanics for "this".

BUG=v8:2700
LOG=N

Review URL: https://codereview.chromium.org/1024703004

Cr-Commit-Position: refs/heads/master@{#27404}
7 files changed
tree: 972731cf1dc75944d068b0a79f8ff5703bac4087
  1. benchmarks/
  2. build/
  3. include/
  4. samples/
  5. src/
  6. test/
  7. testing/
  8. third_party/
  9. tools/
  10. .clang-format
  11. .gitignore
  12. .ycm_extra_conf.py
  13. AUTHORS
  14. BUILD.gn
  15. ChangeLog
  16. codereview.settings
  17. DEPS
  18. LICENSE
  19. LICENSE.strongtalk
  20. LICENSE.v8
  21. LICENSE.valgrind
  22. Makefile
  23. Makefile.android
  24. Makefile.nacl
  25. OWNERS
  26. PRESUBMIT.py
  27. README.md
  28. 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://code.google.com/p/v8/

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