Fix type confusion in libpac

From the upstream patch
(https://chromium.googlesource.com/v8/v8/+/ea55b873f2ed8336604540a532cbd460eeb66430%5E%21/#F0):

"""
Don't generate elements kind transitions from stable maps.

IC system does its best to properly mark stable transition source maps
as unstable (see https://chromium-review.googlesource.com/483442)
however an already recorded map can be deprecated later and the
optimizing compiler may try to generate an elements kind transition
from the updated version of deprecated map which can "become" stable
again.
"""

Bug: 117607414

Test: /data/nativetest/proxy_resolver_v8_unittest/proxy_resolver_v8_unittest

Test: gts-tradefed run gts --test \
  com.google.android.gts.devicepolicy.DeviceOwnerTest#testProxyPacProxyTest \
  --module GtsGmscoreHostTestCases

Test: PoC from bug report

Merged-In: I2e02d994f107e64e4f465b4d8a02d4159a95240e

Change-Id: I12c501bffd190e20d4a45a4256a403c5343350eb
(cherry picked from commit 97832faf9d62ce9d6ca0639eacac0a930e51df8a)
2 files changed
tree: d203d4f727f2610f7071ec39b2e8d9d0ac8f8a7d
  1. base/
  2. benchmarks/
  3. build_overrides/
  4. docs/
  5. gni/
  6. gypfiles/
  7. include/
  8. infra/
  9. samples/
  10. src/
  11. testing/
  12. tools/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .landmines
  17. .ycm_extra_conf.py
  18. Android.base.mk
  19. Android.d8.mk
  20. Android.libv8.mk
  21. Android.mk
  22. Android.mkpeephole.mk
  23. Android.platform.mk
  24. Android.sampler.mk
  25. Android.v8.mk
  26. Android.v8common.mk
  27. Android.v8gen.mk
  28. AUTHORS
  29. BUILD.gn
  30. ChangeLog
  31. CODE_OF_CONDUCT.md
  32. codereview.settings
  33. DEPS
  34. genmakefiles.py
  35. LICENSE
  36. LICENSE.fdlibm
  37. LICENSE.strongtalk
  38. LICENSE.v8
  39. LICENSE.valgrind
  40. Makefile
  41. Makefile.android
  42. merge.py
  43. MODULE_LICENSE_BSD
  44. NOTICE
  45. OWNERS
  46. PRESUBMIT.py
  47. README.md
  48. snapshot_toolchain.gni
  49. V8_MERGE_REVISION
  50. 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://github.com/v8/v8/wiki

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 on the V8 wiki.