Skip to content

Commit 9f68226

Browse files
committed
deps: upgrade v8 to 3.18.0
1 parent 951e0b6 commit 9f68226

File tree

288 files changed

+15770
-11359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

288 files changed

+15770
-11359
lines changed

deps/v8/ChangeLog

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
2013-04-17: Version 3.18.0
2+
3+
Enabled pretenuring of fast literals in high promotion mode.
4+
5+
Removed preparser library; link preparser executable against full V8.
6+
7+
Fixed set-up of intrinsic's 'constructor' properties.
8+
(Chromium issue 229445)
9+
10+
ES6 symbols: extended V8 API to support symbols (issue 2158).
11+
12+
Removed ARM support for VFP2.
13+
14+
Made __proto__ a real JavaScript accessor property.
15+
(issue 1949 and issue 2606)
16+
17+
Performance and stability improvements on all platforms.
18+
19+
120
2013-04-04: Version 3.17.16
221

322
Stack trace API: poison stack frames below the first strict mode frame.

deps/v8/Makefile

Lines changed: 111 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ TESTFLAGS ?=
3636
ANDROID_NDK_ROOT ?=
3737
ANDROID_TOOLCHAIN ?=
3838
ANDROID_V8 ?= /data/local/v8
39+
NACL_SDK_ROOT ?=
3940

4041
# Special build flags. Use them like this: "make library=shared"
4142

@@ -83,22 +84,18 @@ endif
8384
ifeq ($(gdbjit), on)
8485
GYPFLAGS += -Dv8_enable_gdbjit=1
8586
endif
86-
# vfp2=off
87-
ifeq ($(vfp2), off)
88-
GYPFLAGS += -Dv8_can_use_vfp2_instructions=false
89-
else
90-
GYPFLAGS += -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2
91-
endif
92-
# vfp3=off
93-
ifeq ($(vfp3), off)
94-
GYPFLAGS += -Dv8_can_use_vfp3_instructions=false
95-
else
96-
GYPFLAGS += -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
87+
# vtunejit=on
88+
ifeq ($(vtunejit), on)
89+
GYPFLAGS += -Dv8_enable_vtunejit=1
9790
endif
9891
# debuggersupport=off
9992
ifeq ($(debuggersupport), off)
10093
GYPFLAGS += -Dv8_enable_debugger_support=0
10194
endif
95+
# unalignedaccess=on
96+
ifeq ($(unalignedaccess), on)
97+
GYPFLAGS += -Dv8_can_use_unaligned_accesses=true
98+
endif
10299
# soname_version=1.2.3
103100
ifdef soname_version
104101
GYPFLAGS += -Dsoname_version=$(soname_version)
@@ -119,13 +116,66 @@ endif
119116
ifeq ($(regexp), interpreted)
120117
GYPFLAGS += -Dv8_interpreted_regexp=1
121118
endif
122-
# hardfp=on
123-
ifeq ($(hardfp), on)
124-
GYPFLAGS += -Dv8_use_arm_eabi_hardfloat=true
125-
endif
126-
# armv7=false
119+
# arm specific flags.
120+
# armv7=false/true
127121
ifeq ($(armv7), false)
128122
GYPFLAGS += -Darmv7=0
123+
else
124+
ifeq ($(armv7), true)
125+
GYPFLAGS += -Darmv7=1
126+
endif
127+
endif
128+
# vfp2=off. Deprecated, use armfpu=
129+
# vfp3=off. Deprecated, use armfpu=
130+
ifeq ($(vfp3), off)
131+
GYPFLAGS += -Darm_fpu=vfp
132+
endif
133+
# hardfp=on/off. Deprecated, use armfloatabi
134+
ifeq ($(hardfp),on)
135+
GYPFLAGS += -Darm_float_abi=hard
136+
else
137+
ifeq ($(hardfp),off)
138+
GYPFLAGS += -Darm_float_abi=softfp
139+
endif
140+
endif
141+
# armneon=on/off
142+
ifeq ($(armneon), on)
143+
GYPFLAGS += -Darm_neon=1
144+
endif
145+
# fpu: armfpu=xxx
146+
# xxx: vfp, vfpv3-d16, vfpv3, neon.
147+
ifeq ($(armfpu),)
148+
ifneq ($(vfp3), off)
149+
GYPFLAGS += -Darm_fpu=default
150+
endif
151+
else
152+
GYPFLAGS += -Darm_fpu=$(armfpu)
153+
endif
154+
# float abi: armfloatabi=softfp/hard
155+
ifeq ($(armfloatabi),)
156+
ifeq ($(hardfp),)
157+
GYPFLAGS += -Darm_float_abi=default
158+
endif
159+
else
160+
GYPFLAGS += -Darm_float_abi=$(armfloatabi)
161+
endif
162+
# armthumb=on/off
163+
ifeq ($(armthumb), off)
164+
GYPFLAGS += -Darm_thumb=0
165+
else
166+
ifeq ($(armthumb), on)
167+
GYPFLAGS += -Darm_thumb=1
168+
endif
169+
endif
170+
# armtest=on
171+
# With this flag set, by default v8 will only use features implied
172+
# by the compiler (no probe). This is done by modifying the default
173+
# values of enable_armv7, enable_vfp2, enable_vfp3 and enable_32dregs.
174+
# Modifying these flags when launching v8 will enable the probing for
175+
# the specified values.
176+
# When using the simulator, this flag is implied.
177+
ifeq ($(armtest), on)
178+
GYPFLAGS += -Darm_test=on
129179
endif
130180

131181
# ----------------- available targets: --------------------
@@ -136,6 +186,7 @@ endif
136186
# - "native": current host's architecture, release mode
137187
# - any of the above with .check appended, e.g. "ia32.release.check"
138188
# - "android": cross-compile for Android/ARM
189+
# - "nacl" : cross-compile for Native Client (ia32 and x64)
139190
# - default (no target specified): build all DEFAULT_ARCHES and MODES
140191
# - "check": build all targets and run all tests
141192
# - "<arch>.clean" for any <arch> in ARCHES
@@ -149,27 +200,37 @@ ARCHES = ia32 x64 arm mipsel
149200
DEFAULT_ARCHES = ia32 x64 arm
150201
MODES = release debug
151202
ANDROID_ARCHES = android_ia32 android_arm android_mipsel
203+
NACL_ARCHES = nacl_ia32 nacl_x64
152204

153205
# List of files that trigger Makefile regeneration:
154206
GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \
155207
preparser/preparser.gyp samples/samples.gyp src/d8.gyp \
156208
test/cctest/cctest.gyp tools/gyp/v8.gyp
157209

210+
# If vtunejit=on, the v8vtune.gyp will be appended.
211+
ifeq ($(vtunejit), on)
212+
GYPFILES += src/third_party/vtune/v8vtune.gyp
213+
endif
158214
# Generates all combinations of ARCHES and MODES, e.g. "ia32.release".
159215
BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES)))
160216
ANDROID_BUILDS = $(foreach mode,$(MODES), \
161217
$(addsuffix .$(mode),$(ANDROID_ARCHES)))
218+
NACL_BUILDS = $(foreach mode,$(MODES), \
219+
$(addsuffix .$(mode),$(NACL_ARCHES)))
162220
# Generates corresponding test targets, e.g. "ia32.release.check".
163221
CHECKS = $(addsuffix .check,$(BUILDS))
164222
ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS))
223+
NACL_CHECKS = $(addsuffix .check,$(NACL_BUILDS))
165224
# File where previously used GYPFLAGS are stored.
166225
ENVFILE = $(OUTDIR)/environment
167226

168227
.PHONY: all check clean dependencies $(ENVFILE).new native \
169228
$(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \
170229
$(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \
171230
$(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \
172-
must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN
231+
must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN \
232+
$(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \
233+
must-set-NACL_SDK_ROOT
173234

174235
# Target definitions. "all" is the default.
175236
all: $(MODES)
@@ -213,6 +274,16 @@ $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \
213274
OUTDIR="$(OUTDIR)" \
214275
GYPFLAGS="$(GYPFLAGS)"
215276

277+
$(NACL_ARCHES): $(addprefix $$@.,$(MODES))
278+
279+
$(NACL_BUILDS): $(GYPFILES) $(ENVFILE) \
280+
Makefile.nacl must-set-NACL_SDK_ROOT
281+
@$(MAKE) -f Makefile.nacl $@ \
282+
ARCH="$(basename $@)" \
283+
MODE="$(subst .,,$(suffix $@))" \
284+
OUTDIR="$(OUTDIR)" \
285+
GYPFLAGS="$(GYPFLAGS)"
286+
216287
# Test targets.
217288
check: all
218289
@tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
@@ -244,12 +315,21 @@ $(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync
244315
$(addsuffix .check, $(ANDROID_ARCHES)): \
245316
$(addprefix $$(basename $$@).,$(MODES)).check
246317

318+
$(addsuffix .check, $(NACL_BUILDS)): $$(basename $$@)
319+
@tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
320+
--arch-and-mode=$(basename $@) \
321+
--timeout=600 --nopresubmit \
322+
--command-prefix="tools/nacl-run.py"
323+
324+
$(addsuffix .check, $(NACL_ARCHES)): \
325+
$(addprefix $$(basename $$@).,$(MODES)).check
326+
247327
native.check: native
248328
@tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
249329
--arch-and-mode=. $(TESTFLAGS)
250330

251331
# Clean targets. You can clean each architecture individually, or everything.
252-
$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)):
332+
$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)):
253333
rm -f $(OUTDIR)/Makefile.$(basename $@)
254334
rm -rf $(OUTDIR)/$(basename $@).release
255335
rm -rf $(OUTDIR)/$(basename $@).debug
@@ -260,7 +340,7 @@ native.clean:
260340
rm -rf $(OUTDIR)/native
261341
find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete
262342

263-
clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean
343+
clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean
264344

265345
# GYP file generation targets.
266346
OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES))
@@ -283,6 +363,18 @@ ifndef ANDROID_TOOLCHAIN
283363
endif
284364
endif
285365

366+
# Note that NACL_SDK_ROOT must be set to point to an appropriate
367+
# Native Client SDK before using this makefile. You can download
368+
# an SDK here:
369+
# https://developers.google.com/native-client/sdk/download
370+
# The path indicated by NACL_SDK_ROOT will typically end with
371+
# a folder for a pepper version such as "pepper_25" that should
372+
# have "tools" and "toolchain" subdirectories.
373+
must-set-NACL_SDK_ROOT:
374+
ifndef NACL_SDK_ROOT
375+
$(error NACL_SDK_ROOT must be set)
376+
endif
377+
286378
# Replaces the old with the new environment file if they're different, which
287379
# will trigger GYP to regenerate Makefiles.
288380
$(ENVFILE): $(ENVFILE).new

deps/v8/Makefile.nacl

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
#
2+
# Copyright 2013 the V8 project authors. All rights reserved.
3+
# Redistribution and use in source and binary forms, with or without
4+
# modification, are permitted provided that the following conditions are
5+
# met:
6+
#
7+
# * Redistributions of source code must retain the above copyright
8+
# notice, this list of conditions and the following disclaimer.
9+
# * Redistributions in binary form must reproduce the above
10+
# copyright notice, this list of conditions and the following
11+
# disclaimer in the documentation and/or other materials provided
12+
# with the distribution.
13+
# * Neither the name of Google Inc. nor the names of its
14+
# contributors may be used to endorse or promote products derived
15+
# from this software without specific prior written permission.
16+
#
17+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21+
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
29+
# Those definitions should be consistent with the main Makefile
30+
NACL_ARCHES = nacl_ia32 nacl_x64
31+
MODES = release debug
32+
33+
# Generates all combinations of NACL ARCHES and MODES,
34+
# e.g. "nacl_ia32.release" or "nacl_x64.release"
35+
NACL_BUILDS = $(foreach mode,$(MODES), \
36+
$(addsuffix .$(mode),$(NACL_ARCHES)))
37+
38+
HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
39+
ifeq ($(HOST_OS), linux)
40+
TOOLCHAIN_DIR = linux_x86_glibc
41+
else
42+
ifeq ($(HOST_OS), mac)
43+
TOOLCHAIN_DIR = mac_x86_glibc
44+
else
45+
$(error Host platform "${HOST_OS}" is not supported)
46+
endif
47+
endif
48+
49+
TOOLCHAIN_PATH = ${NACL_SDK_ROOT}/toolchain
50+
NACL_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/${TOOLCHAIN_DIR}
51+
52+
ifeq ($(ARCH), nacl_ia32)
53+
GYPENV = nacl_target_arch=nacl_ia32 v8_target_arch=arm v8_host_arch=ia32
54+
TOOLCHAIN_ARCH = x86-4.4
55+
NACL_CC = "$(NACL_TOOLCHAIN)/bin/i686-nacl-gcc"
56+
NACL_CXX = "$(NACL_TOOLCHAIN)/bin/i686-nacl-g++"
57+
NACL_LINK = "$(NACL_TOOLCHAIN)/bin/i686-nacl-g++"
58+
else
59+
ifeq ($(ARCH), nacl_x64)
60+
GYPENV = nacl_target_arch=nacl_x64 v8_target_arch=arm v8_host_arch=ia32
61+
TOOLCHAIN_ARCH = x86-4.4
62+
NACL_CC = "$(NACL_TOOLCHAIN)/bin/x86_64-nacl-gcc"
63+
NACL_CXX = "$(NACL_TOOLCHAIN)/bin/x86_64-nacl-g++"
64+
NACL_LINK = "$(NACL_TOOLCHAIN)/bin/x86_64-nacl-g++"
65+
else
66+
$(error Target architecture "${ARCH}" is not supported)
67+
endif
68+
endif
69+
70+
ifeq ($(wildcard $(NACL_TOOLCHAIN)),)
71+
$(error Cannot find Native Client toolchain in "${NACL_TOOLCHAIN}")
72+
endif
73+
74+
# For mksnapshot host generation.
75+
GYPENV += host_os=${HOST_OS}
76+
77+
NACL_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(NACL_ARCHES))
78+
.SECONDEXPANSION:
79+
# For some reason the $$(basename $$@) expansion didn't work here...
80+
$(NACL_BUILDS): $(NACL_MAKEFILES)
81+
@$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \
82+
CXX=${NACL_CXX} \
83+
LINK=${NACL_LINK} \
84+
BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
85+
python -c "print raw_input().capitalize()") \
86+
builddir="$(shell pwd)/$(OUTDIR)/$@"
87+
88+
# NACL GYP file generation targets.
89+
$(NACL_MAKEFILES):
90+
@GYP_GENERATORS=make \
91+
GYP_DEFINES="${GYPENV}" \
92+
CC=${NACL_CC} \
93+
CXX=${NACL_CXX} \
94+
build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \
95+
-Ibuild/standalone.gypi --depth=. \
96+
-S.$(subst .,,$(suffix $@)) $(GYPFLAGS)

deps/v8/PRESUBMIT.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def _CommonChecks(input_api, output_api):
5353
results = []
5454
results.extend(input_api.canned_checks.CheckOwners(
5555
input_api, output_api, source_file_filter=None))
56+
results.extend(_V8PresubmitChecks(input_api, output_api))
5657
return results
5758

5859

@@ -67,5 +68,4 @@ def CheckChangeOnCommit(input_api, output_api):
6768
results.extend(_CommonChecks(input_api, output_api))
6869
results.extend(input_api.canned_checks.CheckChangeHasDescription(
6970
input_api, output_api))
70-
results.extend(_V8PresubmitChecks(input_api, output_api))
7171
return results

0 commit comments

Comments
 (0)