Skip to content

Commit a7027c6

Browse files
authored
Merge pull request #1303 from NativeScript/darind/v8-7.3.492.25
Upgrade V8 to 7.3.492.25
2 parents dc769c1 + 550cd61 commit a7027c6

272 files changed

Lines changed: 183669 additions & 49765 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"v8Version": "7.2.502.28",
2+
"v8Version": "7.3.492.25",
33
"mksnapshotParams": "--profile_deserialization --turbo_instruction_scheduling"
44
}
-2.09 MB
Binary file not shown.
-3.25 MB
Binary file not shown.
-2.85 MB
Binary file not shown.

test-app/runtime/CMakeLists.txt

Lines changed: 126 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,7 @@ endif (CCACHE_FOUND AND (USE_CCACHE))
1616
# "-DANDROID_STL=c++_static" is just not enough for clang++ to find some libraries in the ndk
1717
MESSAGE(STATUS "## ANDROID_NDK_ROOT: " ${ANDROID_NDK_ROOT})
1818

19-
if (ANDROID_ABI MATCHES "arm64")
20-
set(ARCH_INCLUDE_DIR "aarch64-linux-android")
21-
else ()
22-
set(ARCH_INCLUDE_DIR "arm-linux-androideabi")
23-
endif ()
24-
25-
set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -stdlib=libc++ -Werror -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -fno-rtti")
19+
set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -Werror -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -fno-rtti -D_LIBCPP_ABI_VERSION=Cr -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_ABI_UNSTABLE")
2620

2721
# AOSP has switched to using LLD by default and the NDK will use it by default in the next release.
2822
# BFD and Gold will be removed once LLD has been through a release cycle with no major unresolved issues (estimated r21)
@@ -42,14 +36,14 @@ set(COMMON_CMAKE_ARGUMENTS "-std=c++11 -stdlib=libc++ -Werror -Wno-unused-result
4236

4337
# Command info: https://cmake.org/cmake/help/v3.4/command/include_directories.html
4438
include_directories(
45-
src/main/cpp
46-
src/main/cpp/include
47-
src/main/cpp/v8_inspector
48-
49-
# hack to find some libraries from the ndk
50-
${ANDROID_NDK_ROOT}/sysroot/usr/include/${ARCH_INCLUDE_DIR}/
51-
52-
src/main/libs/${ANDROID_ABI}/include
39+
# V8 uses a custom STL compiled with the LIBCPP_ABI_UNSTABLE flag. To maintain the ABI
40+
# compatibility we use this same STL headers for building the runtime
41+
src/main/cpp/include/libc++
42+
src/main/cpp
43+
src/main/cpp/include
44+
src/main/cpp/v8_inspector
45+
# This folder contains V8's built-in natives and snapshot blobs
46+
src/main/libs/${ANDROID_ABI}/include
5347
)
5448

5549
if (OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
@@ -63,61 +57,61 @@ if (NOT OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
6357
add_definitions(-DAPPLICATION_IN_DEBUG)
6458

6559
set(
66-
INSPECTOR_SOURCES
67-
68-
src/main/cpp/com_tns_AndroidJsV8Inspector.cpp
69-
src/main/cpp/JsV8InspectorClient.cpp
70-
src/main/cpp/DOMDomainCallbackHandlers.cpp
71-
src/main/cpp/NetworkDomainCallbackHandlers.cpp
72-
73-
src/main/cpp/v8_inspector/src/inspector/protocol/CSS.cpp
74-
src/main/cpp/v8_inspector/src/inspector/protocol/Console.cpp
75-
src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp
76-
src/main/cpp/v8_inspector/src/inspector/protocol/Debugger.cpp
77-
src/main/cpp/v8_inspector/src/inspector/protocol/HeapProfiler.cpp
78-
src/main/cpp/v8_inspector/src/inspector/protocol/Log.cpp
79-
src/main/cpp/v8_inspector/src/inspector/protocol/Network.cpp
80-
src/main/cpp/v8_inspector/src/inspector/protocol/Overlay.cpp
81-
src/main/cpp/v8_inspector/src/inspector/protocol/Page.cpp
82-
src/main/cpp/v8_inspector/src/inspector/protocol/Profiler.cpp
83-
src/main/cpp/v8_inspector/src/inspector/protocol/Protocol.cpp
84-
src/main/cpp/v8_inspector/src/inspector/protocol/Runtime.cpp
85-
src/main/cpp/v8_inspector/src/inspector/protocol/Schema.cpp
86-
src/main/cpp/v8_inspector/src/inspector/utils/base64.cpp
87-
src/main/cpp/v8_inspector/src/inspector/utils/v8-inspector-common.cpp
88-
src/main/cpp/v8_inspector/src/inspector/utils/v8-network-request-data.cpp
89-
src/main/cpp/v8_inspector/src/inspector/utils/v8-page-resources.cpp
90-
src/main/cpp/v8_inspector/src/inspector/v8-css-agent-impl.cpp
91-
src/main/cpp/v8_inspector/src/inspector/v8-dom-agent-impl.cpp
92-
src/main/cpp/v8_inspector/src/inspector/v8-log-agent-impl.cpp
93-
src/main/cpp/v8_inspector/src/inspector/v8-network-agent-impl.cpp
94-
src/main/cpp/v8_inspector/src/inspector/v8-overlay-agent-impl.cpp
95-
src/main/cpp/v8_inspector/src/inspector/v8-page-agent-impl.cpp
96-
97-
src/main/cpp/v8_inspector/src/inspector/custom-preview.cc
98-
src/main/cpp/v8_inspector/src/inspector/injected-script.cc
99-
src/main/cpp/v8_inspector/src/inspector/inspected-context.cc
100-
src/main/cpp/v8_inspector/src/inspector/remote-object-id.cc
101-
src/main/cpp/v8_inspector/src/inspector/search-util.cc
102-
src/main/cpp/v8_inspector/src/inspector/string-16.cc
103-
src/main/cpp/v8_inspector/src/inspector/string-util.cc
104-
src/main/cpp/v8_inspector/src/inspector/v8-console.cc
105-
src/main/cpp/v8_inspector/src/inspector/v8-console-agent-impl.cc
106-
src/main/cpp/v8_inspector/src/inspector/v8-console-message.cc
107-
src/main/cpp/v8_inspector/src/inspector/v8-debugger.cc
108-
src/main/cpp/v8_inspector/src/inspector/v8-debugger-agent-impl.cc
109-
src/main/cpp/v8_inspector/src/inspector/v8-debugger-script.cc
110-
src/main/cpp/v8_inspector/src/inspector/v8-heap-profiler-agent-impl.cc
111-
src/main/cpp/v8_inspector/src/inspector/v8-inspector-impl.cc
112-
src/main/cpp/v8_inspector/src/inspector/v8-inspector-session-impl.cc
113-
src/main/cpp/v8_inspector/src/inspector/v8-profiler-agent-impl.cc
114-
src/main/cpp/v8_inspector/src/inspector/v8-regex.cc
115-
src/main/cpp/v8_inspector/src/inspector/v8-runtime-agent-impl.cc
116-
src/main/cpp/v8_inspector/src/inspector/v8-schema-agent-impl.cc
117-
src/main/cpp/v8_inspector/src/inspector/v8-stack-trace-impl.cc
118-
src/main/cpp/v8_inspector/src/inspector/v8-value-utils.cc
119-
src/main/cpp/v8_inspector/src/inspector/value-mirror.cc
120-
src/main/cpp/v8_inspector/src/inspector/wasm-translation.cc
60+
INSPECTOR_SOURCES
61+
62+
src/main/cpp/com_tns_AndroidJsV8Inspector.cpp
63+
src/main/cpp/JsV8InspectorClient.cpp
64+
src/main/cpp/DOMDomainCallbackHandlers.cpp
65+
src/main/cpp/NetworkDomainCallbackHandlers.cpp
66+
67+
src/main/cpp/v8_inspector/src/inspector/protocol/CSS.cpp
68+
src/main/cpp/v8_inspector/src/inspector/protocol/Console.cpp
69+
src/main/cpp/v8_inspector/src/inspector/protocol/DOM.cpp
70+
src/main/cpp/v8_inspector/src/inspector/protocol/Debugger.cpp
71+
src/main/cpp/v8_inspector/src/inspector/protocol/HeapProfiler.cpp
72+
src/main/cpp/v8_inspector/src/inspector/protocol/Log.cpp
73+
src/main/cpp/v8_inspector/src/inspector/protocol/Network.cpp
74+
src/main/cpp/v8_inspector/src/inspector/protocol/Overlay.cpp
75+
src/main/cpp/v8_inspector/src/inspector/protocol/Page.cpp
76+
src/main/cpp/v8_inspector/src/inspector/protocol/Profiler.cpp
77+
src/main/cpp/v8_inspector/src/inspector/protocol/Protocol.cpp
78+
src/main/cpp/v8_inspector/src/inspector/protocol/Runtime.cpp
79+
src/main/cpp/v8_inspector/src/inspector/protocol/Schema.cpp
80+
src/main/cpp/v8_inspector/src/inspector/utils/base64.cpp
81+
src/main/cpp/v8_inspector/src/inspector/utils/v8-inspector-common.cpp
82+
src/main/cpp/v8_inspector/src/inspector/utils/v8-network-request-data.cpp
83+
src/main/cpp/v8_inspector/src/inspector/utils/v8-page-resources.cpp
84+
src/main/cpp/v8_inspector/src/inspector/v8-css-agent-impl.cpp
85+
src/main/cpp/v8_inspector/src/inspector/v8-dom-agent-impl.cpp
86+
src/main/cpp/v8_inspector/src/inspector/v8-log-agent-impl.cpp
87+
src/main/cpp/v8_inspector/src/inspector/v8-network-agent-impl.cpp
88+
src/main/cpp/v8_inspector/src/inspector/v8-overlay-agent-impl.cpp
89+
src/main/cpp/v8_inspector/src/inspector/v8-page-agent-impl.cpp
90+
91+
src/main/cpp/v8_inspector/src/inspector/custom-preview.cc
92+
src/main/cpp/v8_inspector/src/inspector/injected-script.cc
93+
src/main/cpp/v8_inspector/src/inspector/inspected-context.cc
94+
src/main/cpp/v8_inspector/src/inspector/remote-object-id.cc
95+
src/main/cpp/v8_inspector/src/inspector/search-util.cc
96+
src/main/cpp/v8_inspector/src/inspector/string-16.cc
97+
src/main/cpp/v8_inspector/src/inspector/string-util.cc
98+
src/main/cpp/v8_inspector/src/inspector/v8-console.cc
99+
src/main/cpp/v8_inspector/src/inspector/v8-console-agent-impl.cc
100+
src/main/cpp/v8_inspector/src/inspector/v8-console-message.cc
101+
src/main/cpp/v8_inspector/src/inspector/v8-debugger.cc
102+
src/main/cpp/v8_inspector/src/inspector/v8-debugger-agent-impl.cc
103+
src/main/cpp/v8_inspector/src/inspector/v8-debugger-script.cc
104+
src/main/cpp/v8_inspector/src/inspector/v8-heap-profiler-agent-impl.cc
105+
src/main/cpp/v8_inspector/src/inspector/v8-inspector-impl.cc
106+
src/main/cpp/v8_inspector/src/inspector/v8-inspector-session-impl.cc
107+
src/main/cpp/v8_inspector/src/inspector/v8-profiler-agent-impl.cc
108+
src/main/cpp/v8_inspector/src/inspector/v8-regex.cc
109+
src/main/cpp/v8_inspector/src/inspector/v8-runtime-agent-impl.cc
110+
src/main/cpp/v8_inspector/src/inspector/v8-schema-agent-impl.cc
111+
src/main/cpp/v8_inspector/src/inspector/v8-stack-trace-impl.cc
112+
src/main/cpp/v8_inspector/src/inspector/v8-value-utils.cc
113+
src/main/cpp/v8_inspector/src/inspector/value-mirror.cc
114+
src/main/cpp/v8_inspector/src/inspector/wasm-translation.cc
121115
)
122116
else ()
123117
# Debug builds will include the V8 inspector sources
@@ -128,55 +122,55 @@ endif ()
128122
# Creates(shared static) and names a library given relative sources
129123
# Gradle automatically packages shared libraries with your APK.
130124
add_library(
131-
# Sets the name of the library. When it's built you can find it with lib prefix libNativeScript.so
132-
NativeScript
133-
134-
# Sets the library as a shared library.
135-
SHARED
136-
137-
# Runtime source
138-
src/main/cpp/ArgConverter.cpp
139-
src/main/cpp/ArrayBufferHelper.cpp
140-
src/main/cpp/ArrayElementAccessor.cpp
141-
src/main/cpp/ArrayHelper.cpp
142-
src/main/cpp/AssetExtractor.cpp
143-
src/main/cpp/CallbackHandlers.cpp
144-
src/main/cpp/Constants.cpp
145-
src/main/cpp/DirectBuffer.cpp
146-
src/main/cpp/FieldAccessor.cpp
147-
src/main/cpp/File.cpp
148-
src/main/cpp/JEnv.cpp
149-
src/main/cpp/DesugaredInterfaceCompanionClassNameResolver.cpp
150-
src/main/cpp/JType.cpp
151-
src/main/cpp/JniSignatureParser.cpp
152-
src/main/cpp/JsArgConverter.cpp
153-
src/main/cpp/JsArgToArrayConverter.cpp
154-
src/main/cpp/Logger.cpp
155-
src/main/cpp/ManualInstrumentation.cpp
156-
src/main/cpp/MetadataMethodInfo.cpp
157-
src/main/cpp/MetadataNode.cpp
158-
src/main/cpp/MetadataReader.cpp
159-
src/main/cpp/MetadataTreeNode.cpp
160-
src/main/cpp/MethodCache.cpp
161-
src/main/cpp/ModuleInternal.cpp
162-
src/main/cpp/NativeScriptException.cpp
163-
src/main/cpp/NumericCasts.cpp
164-
src/main/cpp/ObjectManager.cpp
165-
src/main/cpp/Profiler.cpp
166-
src/main/cpp/ReadWriteLock.cpp
167-
src/main/cpp/Runtime.cpp
168-
src/main/cpp/SimpleAllocator.cpp
169-
src/main/cpp/SimpleProfiler.cpp
170-
src/main/cpp/Util.cpp
171-
src/main/cpp/V8GlobalHelpers.cpp
172-
src/main/cpp/V8StringConstants.cpp
173-
src/main/cpp/WeakRef.cpp
174-
src/main/cpp/com_tns_AssetExtractor.cpp
175-
src/main/cpp/com_tns_Runtime.cpp
176-
src/main/cpp/console/Console.cpp
177-
178-
# V8 inspector source files will be included only in Release mode
179-
${INSPECTOR_SOURCES}
125+
# Sets the name of the library. When it's built you can find it with lib prefix libNativeScript.so
126+
NativeScript
127+
128+
# Sets the library as a shared library.
129+
SHARED
130+
131+
# Runtime source
132+
src/main/cpp/ArgConverter.cpp
133+
src/main/cpp/ArrayBufferHelper.cpp
134+
src/main/cpp/ArrayElementAccessor.cpp
135+
src/main/cpp/ArrayHelper.cpp
136+
src/main/cpp/AssetExtractor.cpp
137+
src/main/cpp/CallbackHandlers.cpp
138+
src/main/cpp/Constants.cpp
139+
src/main/cpp/DirectBuffer.cpp
140+
src/main/cpp/FieldAccessor.cpp
141+
src/main/cpp/File.cpp
142+
src/main/cpp/JEnv.cpp
143+
src/main/cpp/DesugaredInterfaceCompanionClassNameResolver.cpp
144+
src/main/cpp/JType.cpp
145+
src/main/cpp/JniSignatureParser.cpp
146+
src/main/cpp/JsArgConverter.cpp
147+
src/main/cpp/JsArgToArrayConverter.cpp
148+
src/main/cpp/Logger.cpp
149+
src/main/cpp/ManualInstrumentation.cpp
150+
src/main/cpp/MetadataMethodInfo.cpp
151+
src/main/cpp/MetadataNode.cpp
152+
src/main/cpp/MetadataReader.cpp
153+
src/main/cpp/MetadataTreeNode.cpp
154+
src/main/cpp/MethodCache.cpp
155+
src/main/cpp/ModuleInternal.cpp
156+
src/main/cpp/NativeScriptException.cpp
157+
src/main/cpp/NumericCasts.cpp
158+
src/main/cpp/ObjectManager.cpp
159+
src/main/cpp/Profiler.cpp
160+
src/main/cpp/ReadWriteLock.cpp
161+
src/main/cpp/Runtime.cpp
162+
src/main/cpp/SimpleAllocator.cpp
163+
src/main/cpp/SimpleProfiler.cpp
164+
src/main/cpp/Util.cpp
165+
src/main/cpp/V8GlobalHelpers.cpp
166+
src/main/cpp/V8StringConstants.cpp
167+
src/main/cpp/WeakRef.cpp
168+
src/main/cpp/com_tns_AssetExtractor.cpp
169+
src/main/cpp/com_tns_Runtime.cpp
170+
src/main/cpp/console/Console.cpp
171+
172+
# V8 inspector source files will be included only in Release mode
173+
${INSPECTOR_SOURCES}
180174
)
181175

182176
set(NATIVES_BLOB_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/include)
@@ -189,7 +183,8 @@ if (OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
189183
)
190184
else ()
191185
set_target_properties(
192-
NativeScript PROPERTIES LINK_FLAGS "-Wl,--allow-multiple-definition"
186+
NativeScript
187+
PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition
193188
INTERFACE_INCLUDE_DIRECTORIES NATIVES_BLOB_INCLUDE_DIRECTORIES
194189
)
195190
endif ()
@@ -203,7 +198,7 @@ MESSAGE(STATUS "# CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
203198
MESSAGE(STATUS "# CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS})
204199

205200
# Command info: https://cmake.org/cmake/help/v3.4/command/target_link_libraries.html
206-
# linking v8 and inspector libraries to runtime(NativeScript library)
201+
# linking v8 and custom STL libraries to the runtime (NativeScript library)
207202
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libzip.a)
208203
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_base.a)
209204
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_external_snapshot.a)
@@ -213,6 +208,16 @@ target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID
213208
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_libsampler.a)
214209
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libv8_libbase.a)
215210

211+
# This is the custom STL produced during the V8 build
212+
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libc++.a)
213+
target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libc++abi.a)
214+
215+
if("${ANDROID_ABI}" MATCHES "armeabi-v7a" OR "${ANDROID_ABI}" MATCHES "x86")
216+
# On API Level 19 and lower we need to link with android_support
217+
# because it contains some implementation of functions such as "strtoll" and "strtoul"
218+
target_link_libraries(NativeScript ${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_ABI}/libandroid_support.a)
219+
endif()
220+
216221
# Command info: https://cmake.org/cmake/help/v3.4/command/find_library.html
217222
# Searches for a specified prebuilt library and stores the path as a
218223
# variable. Because CMake includes system libraries in the search path by

0 commit comments

Comments
 (0)