├── .buckconfig
├── .buckversion
├── .gitignore
├── AndroidManifest.xml
├── BUCK
├── BUILD_DEFS
├── LICENSE
├── PATENTS
├── README.md
├── android-jsc.pom
├── fetch_sources.sh
├── icu
└── BUCK
├── install.sh
└── jsc
├── BUCK
└── extra_headers
├── LLIntAssembly.h
├── collation_hack.h
└── langinfo.h
/.buckconfig:
--------------------------------------------------------------------------------
1 | [buildfile]
2 | includes = //BUILD_DEFS
3 | [ndk]
4 | ndk_version = r10c
5 | cppflags = \
6 | -std=gnu11 \
7 | -Wall \
8 | -Werror \
9 | -g3 \
10 | -DNEBUG \
11 | -fstack-protector
12 | cflags = \
13 | -std=gnu11 \
14 | -Wall \
15 | -Werror \
16 | -g3 \
17 | -Wa,--noexecstack \
18 | -fstack-protector \
19 | -ffunction-sections \
20 | -funwind-tables \
21 | -fomit-frame-pointer \
22 | -fno-strict-aliasing
23 | cxxppflags = \
24 | -std=gnu++11 \
25 | -Wall \
26 | -Werror \
27 | -Wno-literal-suffix \
28 | -g3 \
29 | -DNEBUG \
30 | -fstack-protector \
31 | -fno-exceptions \
32 | -fno-rtti
33 | cxxflags = \
34 | -std=gnu++11 \
35 | -Wall \
36 | -Werror \
37 | -g3 \
38 | -Wa,--noexecstack \
39 | -fstack-protector \
40 | -ffunction-sections \
41 | -funwind-tables \
42 | -fomit-frame-pointer \
43 | -fno-strict-aliasing \
44 | -fno-exceptions \
45 | -fno-rtti
46 | ldflags = \
47 | -Wl,--build-id \
48 | -Wl,-z,noexecstack \
49 | -Wl,--gc-sections \
50 | -Wl,-z,defs \
51 | -Wl,-z,nocopyreloc \
52 | -Wl,--as-needed
53 | arm_cppflags = \
54 | -mthumb \
55 | -Os
56 | arm_cflags = \
57 | -mtune=xscale \
58 | -msoft-float \
59 | -mthumb \
60 | -Os
61 | arm_cxxppflags = \
62 | -mthumb \
63 | -Os
64 | arm_cxxflags = \
65 | -mtune=xscale \
66 | -msoft-float \
67 | -mthumb \
68 | -Os
69 | arm_ldflags = \
70 | -Wl,--fix-cortex-a8
71 | armv7_cppflags = \
72 | -mfloat-abi=softfp \
73 | -mthumb \
74 | -Os
75 | armv7_cflags = \
76 | -finline-limit=64 \
77 | -mfpu=vfpv3-d16 \
78 | -mfloat-abi=softfp \
79 | -mthumb \
80 | -Os
81 | armv7_cxxppflags = \
82 | -mfloat-abi=softfp \
83 | -mthumb \
84 | -Os
85 | armv7_cxxflags = \
86 | -finline-limit=64 \
87 | -mfpu=vfpv3-d16 \
88 | -mfloat-abi=softfp \
89 | -mthumb \
90 | -Os
91 | x86_cppflags = \
92 | -O2
93 | x86_cflags = \
94 | -funswitch-loops \
95 | -finline-limit=300 \
96 | -O2
97 | x86_cxxppflags = \
98 | -O2
99 | x86_cxxflags = \
100 | -funswitch-loops \
101 | -finline-limit=300 \
102 | -O2
103 | [cxx]
104 | preprocess_mode = piped
105 | cppflags = \
106 | -std=gnu11 \
107 | -pthread \
108 | -O0 \
109 | -g3
110 | cflags = \
111 | -std=gnu11 \
112 | -pthread \
113 | -O0 \
114 | -g3
115 | cxxppflags = \
116 | -std=gnu++11 \
117 | -pthread \
118 | -O0 \
119 | -g3
120 | cxxflags = \
121 | -std=gnu++11 \
122 | -pthread \
123 | -O0 \
124 | -g3
125 |
--------------------------------------------------------------------------------
/.buckversion:
--------------------------------------------------------------------------------
1 | 993d54556f28ea8890a1b2864b8e3c532646145c
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | buck-out/
2 | .buckd/
3 | icu
4 | !icu/BUCK
5 | jsc
6 | !jsc/BUCK
7 | !jsc/extra_headers
8 | *.gz
9 | *.bz2
10 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/BUCK:
--------------------------------------------------------------------------------
1 | # Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | android_aar(
4 | name = 'android-jsc',
5 | manifest_skeleton = 'AndroidManifest.xml',
6 | deps = [
7 | '//jsc:jsc',
8 | ],
9 | )
10 |
--------------------------------------------------------------------------------
/BUILD_DEFS:
--------------------------------------------------------------------------------
1 | # -*- mode: python -*-
2 |
3 | import os
4 |
5 | original_glob = glob
6 | def glob(*args, **kwargs):
7 | result = original_glob(*args, **kwargs)
8 | result.sort()
9 | return result
10 |
11 | def subdir_glob(glob_specs):
12 | """
13 | Given a list of tuples, the form of (relative-sub-directory, glob-pattern),
14 | return a dict of sub-directory relative paths to full paths. Useful for
15 | defining header maps for C/C++ libraries which should be relative the given
16 | sub-directory.
17 | """
18 |
19 | results = {}
20 |
21 | for dirpath, glob_pattern in glob_specs:
22 | files = glob([os.path.join(dirpath, glob_pattern)])
23 | for f in files:
24 | if dirpath:
25 | results[f[len(dirpath) + 1:]] = f
26 | else:
27 | results[f] = f
28 |
29 | return results
30 |
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD License
2 |
3 | For JavaScriptCore build scripts for Android software
4 |
5 | Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
6 |
7 | Redistribution and use in source and binary forms, with or without modification,
8 | are permitted provided that the following conditions are met:
9 |
10 | * Redistributions of source code must retain the above copyright notice, this
11 | list of conditions and the following disclaimer.
12 |
13 | * Redistributions in binary form must reproduce the above copyright notice,
14 | this list of conditions and the following disclaimer in the documentation
15 | and/or other materials provided with the distribution.
16 |
17 | * Neither the name Facebook nor the names of its contributors may be used to
18 | endorse or promote products derived from this software without specific
19 | prior written permission.
20 |
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 |
--------------------------------------------------------------------------------
/PATENTS:
--------------------------------------------------------------------------------
1 | Additional Grant of Patent Rights Version 2
2 |
3 | "Software" means the JavaScriptCore build scripts for Android software distributed by Facebook, Inc.
4 |
5 | Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software
6 | ("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
7 | (subject to the termination provision below) license under any Necessary
8 | Claims, to make, have made, use, sell, offer to sell, import, and otherwise
9 | transfer the Software. For avoidance of doubt, no license is granted under
10 | Facebook’s rights in any patent claims that are infringed by (i) modifications
11 | to the Software made by you or any third party or (ii) the Software in
12 | combination with any software or other technology.
13 |
14 | The license granted hereunder will terminate, automatically and without notice,
15 | if you (or any of your subsidiaries, corporate affiliates or agents) initiate
16 | directly or indirectly, or take a direct financial interest in, any Patent
17 | Assertion: (i) against Facebook or any of its subsidiaries or corporate
18 | affiliates, (ii) against any party if such Patent Assertion arises in whole or
19 | in part from any software, technology, product or service of Facebook or any of
20 | its subsidiaries or corporate affiliates, or (iii) against any party relating
21 | to the Software. Notwithstanding the foregoing, if Facebook or any of its
22 | subsidiaries or corporate affiliates files a lawsuit alleging patent
23 | infringement against you in the first instance, and you respond by filing a
24 | patent infringement counterclaim in that lawsuit against that party that is
25 | unrelated to the Software, the license granted hereunder will not terminate
26 | under section (i) of this paragraph due to such counterclaim.
27 |
28 | A "Necessary Claim" is a claim of a patent owned by Facebook that is
29 | necessarily infringed by the Software standing alone.
30 |
31 | A "Patent Assertion" is any lawsuit or other action alleging direct, indirect,
32 | or contributory infringement or inducement to infringe any patent, including a
33 | cross-claim or counterclaim.
34 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JSC build scripts for Android
2 |
3 | This repository contains scripts for building the JSC library for Android. The build scripts bundle JSC as a shared library into an [Android AAR](http://tools.android.com/tech-docs/new-build-system/aar-format) file, which makes it easy to use it in Android projects built with [Buck](https://buckbuild.com) or [Gradle](https://gradle.org).
4 |
5 | ## Requirements
6 | * OS X or Linux - the build process have not been tested on other platforms.
7 | * Android dev environment setup ([SDK](https://developer.android.com/sdk/installing/index.html?pkg=tools) + [NDK](https://developer.android.com/ndk/guides/setup.html))
8 | * [Buck](https://buckbuild.com) - configured to work with Android (see [Quick Start](https://buckbuild.com/setup/quick_start.html) for instructions)
9 | * [Maven](https://maven.apache.org/download.cgi) (3.2+)
10 | * Used command line utilities: [ruby](https://www.ruby-lang.org/) (2.0+), zip, curl
11 |
12 | ## Build instructions
13 |
14 | **1. Use the following script to pull in sources for [JSC](https://www.webkit.org) and [ICU](http://site.icu-project.org)**
15 | ```bash
16 | ./fetch_sources.sh
17 | ```
18 |
19 | **2. Build the AAR with Buck (this may take a while)**
20 | ```bash
21 | buck build :android-jsc
22 | ```
23 | As build step may take a while, consider using `--num-threads` or `--load-limit` options of `buck` command. This may slow the build process down, but should let you use your computer with less hiccups while the build is running.
24 |
25 | **3. Install the AAR in you local maven repository:**
26 | ```bash
27 | ./install.sh
28 | ```
29 |
30 | ## Use the android-jsc AAR
31 |
32 | After installation, the android-jsc AAR file should be accessible through maven:
33 |
34 | **1. Using BUCK**
35 | ```python
36 | android_prebuilt_aar(
37 | name = 'android-jsc',
38 | aar = ':android-jsc-aar',
39 | )
40 |
41 | remote_file(
42 | name = 'android-jsc-aar',
43 | url = 'mvn:org.webkit:android-jsc:aar:r174650',
44 | sha1 = '880cedd93f43e0fc841f01f2fa185a63d9230f85',
45 | )
46 | ```
47 |
48 | **2. Using gradle**
49 | ```groovy
50 | compile 'org.webkit:android-jsc:r174650'
51 | ```
52 |
53 | The resulting AAR can be also located in your local maven repository (usually under `~/.m2/repository/org/webkit/android-jsc/`)
54 |
--------------------------------------------------------------------------------
/android-jsc.pom:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 | org.webkit
6 | android-jsc
7 | r174650
8 | aar
9 |
10 | android-jsc
11 | JavaScriptCore library for android
12 | https://www.webkit.org
13 |
14 |
15 |
16 | BSD License
17 | https://raw.githubusercontent.com/facebook/android-jsc/master/LICENSE
18 |
19 |
20 |
21 |
22 |
23 | kmagiera
24 | Krzysztof Magiera
25 | https://github.com/kmagiera
26 |
27 |
28 |
29 |
30 | https://github.com/facebook/android-jsc.git
31 | https://github.com/facebook/android-jsc.git
32 | https://github.com/facebook/android-jsc
33 |
34 |
35 |
--------------------------------------------------------------------------------
/fetch_sources.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2004-present Facebook. All Rights Reserved.
4 |
5 | set -e
6 |
7 | cd "$(dirname "$0")"
8 |
9 | echo "Downloading ICU"
10 | curl -o icu4c.tar.gz https://android.googlesource.com/platform/external/icu/+archive/e25a54101b72d27b345934e1574aa314c1899969/icu4c/source.tar.gz
11 |
12 | echo "Extracting ICU"
13 | tar -zxf icu4c.tar.gz -C icu
14 |
15 | echo "Downloading JSC"
16 | curl -O https://builds-nightly.webkit.org/files/trunk/src/WebKit-r174650.tar.bz2
17 |
18 | echo "Extracting JSC"
19 | tar -jxf WebKit-r174650.tar.bz2 -C jsc --strip 2 WebKit-r174650/Source/JavaScriptCore WebKit-r174650/Source/WTF
20 |
21 |
--------------------------------------------------------------------------------
/icu/BUCK:
--------------------------------------------------------------------------------
1 | # Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | SOURCE_FILES = [
4 | 'common/cmemory.c',
5 | 'common/cstring.c',
6 | 'common/cwchar.c',
7 | 'common/locmap.c',
8 | 'common/loadednormalizer2impl.cpp',
9 | 'common/punycode.cpp',
10 | 'common/putil.cpp',
11 | 'common/sharedobject.cpp',
12 | 'common/simplepatternformatter.cpp',
13 | 'common/uarrsort.c',
14 | 'common/ubidi.c',
15 | 'common/ubidiln.c',
16 | 'common/ubidi_props.c',
17 | 'common/ubidiwrt.c',
18 | 'common/ucase.cpp',
19 | 'common/ucasemap.cpp',
20 | 'common/ucat.c',
21 | 'common/uchar.c',
22 | 'common/ucln_cmn.cpp',
23 | 'common/ucmndata.c',
24 | 'common/ucnv2022.cpp',
25 | 'common/ucnv_bld.cpp',
26 | 'common/ucnvbocu.cpp',
27 | 'common/ucnv.c',
28 | 'common/ucnv_cb.c',
29 | 'common/ucnv_cnv.c',
30 | 'common/ucnvdisp.c',
31 | 'common/ucnv_err.c',
32 | 'common/ucnv_ext.cpp',
33 | 'common/ucnvhz.c',
34 | 'common/ucnv_io.cpp',
35 | 'common/ucnvisci.c',
36 | 'common/ucnvlat1.c',
37 | 'common/ucnv_lmb.c',
38 | 'common/ucnvmbcs.cpp',
39 | 'common/ucnvscsu.c',
40 | 'common/ucnv_set.c',
41 | 'common/ucnv_u16.c',
42 | 'common/ucnv_u32.c',
43 | 'common/ucnv_u7.c',
44 | 'common/ucnv_u8.c',
45 | 'common/udatamem.c',
46 | 'common/udataswp.c',
47 | 'common/uenum.c',
48 | 'common/uhash.c',
49 | 'common/uinit.cpp',
50 | 'common/uinvchar.c',
51 | 'common/uloc.cpp',
52 | 'common/umapfile.c',
53 | 'common/umath.c',
54 | 'common/umutex.cpp',
55 | 'common/unames.cpp',
56 | 'common/uresbund.cpp',
57 | 'common/ures_cnv.c',
58 | 'common/uresdata.c',
59 | 'common/usc_impl.c',
60 | 'common/uscript.c',
61 | 'common/uscript_props.cpp',
62 | 'common/ushape.cpp',
63 | 'common/ustrcase.cpp',
64 | 'common/ustr_cnv.cpp',
65 | 'common/ustrfmt.c',
66 | 'common/ustring.cpp',
67 | 'common/ustrtrns.cpp',
68 | 'common/ustr_wcs.cpp',
69 | 'common/utf_impl.c',
70 | 'common/utrace.c',
71 | 'common/utrie.cpp',
72 | 'common/utypes.c',
73 | 'common/wintz.c',
74 | 'common/utrie2_builder.cpp',
75 | 'common/icuplug.cpp',
76 | 'common/propsvec.c',
77 | 'common/ulist.c',
78 | 'common/ulistformatter.cpp',
79 | 'common/uloc_keytype.cpp',
80 | 'common/uloc_tag.c',
81 | 'common/ucnv_ct.c',
82 | 'common/bmpset.cpp',
83 | 'common/unisetspan.cpp',
84 | 'common/brkeng.cpp',
85 | 'common/brkiter.cpp',
86 | 'common/caniter.cpp',
87 | 'common/chariter.cpp',
88 | 'common/dictbe.cpp',
89 | 'common/locbased.cpp',
90 | 'common/locid.cpp',
91 | 'common/locutil.cpp',
92 | 'common/normlzr.cpp',
93 | 'common/parsepos.cpp',
94 | 'common/propname.cpp',
95 | 'common/rbbi.cpp',
96 | 'common/rbbidata.cpp',
97 | 'common/rbbinode.cpp',
98 | 'common/rbbirb.cpp',
99 | 'common/rbbiscan.cpp',
100 | 'common/rbbisetb.cpp',
101 | 'common/rbbistbl.cpp',
102 | 'common/rbbitblb.cpp',
103 | 'common/resbund_cnv.cpp',
104 | 'common/resbund.cpp',
105 | 'common/ruleiter.cpp',
106 | 'common/schriter.cpp',
107 | 'common/serv.cpp',
108 | 'common/servlk.cpp',
109 | 'common/servlkf.cpp',
110 | 'common/servls.cpp',
111 | 'common/servnotf.cpp',
112 | 'common/servrbf.cpp',
113 | 'common/servslkf.cpp',
114 | 'common/ubrk.cpp',
115 | 'common/uchriter.cpp',
116 | 'common/uhash_us.cpp',
117 | 'common/uidna.cpp',
118 | 'common/uiter.cpp',
119 | 'common/unifiedcache.cpp',
120 | 'common/unifilt.cpp',
121 | 'common/unifunct.cpp',
122 | 'common/uniset.cpp',
123 | 'common/uniset_props.cpp',
124 | 'common/unistr_case.cpp',
125 | 'common/unistr_cnv.cpp',
126 | 'common/unistr.cpp',
127 | 'common/unistr_props.cpp',
128 | 'common/unormcmp.cpp',
129 | 'common/unorm.cpp',
130 | 'common/uobject.cpp',
131 | 'common/uset.cpp',
132 | 'common/usetiter.cpp',
133 | 'common/uset_props.cpp',
134 | 'common/usprep.cpp',
135 | 'common/ustack.cpp',
136 | 'common/ustrenum.cpp',
137 | 'common/utext.cpp',
138 | 'common/util.cpp',
139 | 'common/util_props.cpp',
140 | 'common/uvector.cpp',
141 | 'common/uvectr32.cpp',
142 | 'common/errorcode.cpp',
143 | 'common/bytestream.cpp',
144 | 'common/stringpiece.cpp',
145 | 'common/dtintrv.cpp',
146 | 'common/ucnvsel.cpp',
147 | 'common/uvectr64.cpp',
148 | 'common/locavailable.cpp',
149 | 'common/locdispnames.cpp',
150 | 'common/loclikely.cpp',
151 | 'common/locresdata.cpp',
152 | 'common/normalizer2impl.cpp',
153 | 'common/normalizer2.cpp',
154 | 'common/filterednormalizer2.cpp',
155 | 'common/filteredbrk.cpp',
156 | 'common/ucol_swp.cpp',
157 | 'common/uprops.cpp',
158 | 'common/utrie2.cpp',
159 | 'common/charstr.cpp',
160 | 'common/uts46.cpp',
161 | 'common/udata.cpp',
162 | 'common/appendable.cpp',
163 | 'common/bytestrie.cpp',
164 | 'common/bytestriebuilder.cpp',
165 | 'common/bytestrieiterator.cpp',
166 | 'common/messagepattern.cpp',
167 | 'common/patternprops.cpp',
168 | 'common/stringtriebuilder.cpp',
169 | 'common/ucharstrie.cpp',
170 | 'common/ucharstriebuilder.cpp',
171 | 'common/ucharstrieiterator.cpp',
172 | 'common/dictionarydata.cpp',
173 | 'common/ustrcase_locale.cpp',
174 | 'common/unistr_titlecase_brkiter.cpp',
175 | 'common/uniset_closure.cpp',
176 | 'common/ucasemap_titlecase_brkiter.cpp',
177 | 'common/ustr_titlecase_brkiter.cpp',
178 | 'common/unistr_case_locale.cpp',
179 | 'common/listformatter.cpp',
180 | 'stubdata/stubdata.c',
181 | ]
182 |
183 | cxx_library(
184 | name = 'common',
185 | preprocessor_flags = [
186 | '-D_REENTRANT',
187 | '-DU_COMMON_IMPLEMENTATION',
188 | '-DPIC',
189 | ],
190 | compiler_flags = [
191 | '-O3',
192 | '-fvisibility=hidden',
193 | '-Wno-unused-parameter',
194 | '-Wno-missing-field-initializers',
195 | '-Wno-sign-compare',
196 | '-Wno-deprecated-declarations',
197 | '-Wno-unused-function',
198 | '-fPIC',
199 | '-Os',
200 | ],
201 | header_namespace='',
202 | linker_flags = [
203 | ],
204 | headers = subdir_glob([
205 | ('common', '*.h'),
206 | ('common', 'unicode/*.h'),
207 | ]),
208 | exported_headers = subdir_glob([
209 | ('common', 'unicode/*.h'),
210 | ]),
211 | srcs = map(lambda x: (x, ['-frtti']) if x.endswith('.cpp') else x, SOURCE_FILES),
212 | visibility = [
213 | 'PUBLIC',
214 | ],
215 | )
216 |
217 | cxx_library(
218 | name = 'i18n',
219 | preprocessor_flags = [
220 | '-D_REENTRANT',
221 | '-DPIC',
222 | '-DU_I18N_IMPLEMENTATION',
223 | ],
224 | compiler_flags = [
225 | '-fvisibility=hidden',
226 | '-fPIC',
227 | '-Os',
228 | '-Wno-deprecated-declarations',
229 | ],
230 | header_namespace='',
231 | linker_flags = [
232 | ],
233 | headers = subdir_glob([
234 | ('common', '*.h'),
235 | ('common', 'unicode/*.h'),
236 | ('i18n', '*.h'),
237 | ('i18n', 'unicode/*.h'),
238 | ]),
239 | exported_headers = subdir_glob([
240 | ('i18n', 'unicode/*.h'),
241 | ]),
242 | visibility = [
243 | 'PUBLIC',
244 | ],
245 | )
246 |
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2004-present Facebook. All Rights Reserved.
4 |
5 | set -e
6 |
7 | cd "$(dirname "$0")"
8 |
9 | AAR_PATH=buck-out/gen/android-jsc.aar
10 |
11 | # Make sure that AAR is build, call buck
12 | echo "Building JSC & ICU for Android"
13 | buck build :android-jsc
14 |
15 | # Remove gnustl_shared binaries from AAR. This is due to gradle inability to
16 | # handle native libraries with conflicting names coming from multiple
17 | # dependecies. See https://code.google.com/p/android/issues/detail?id=158630
18 | zip -d $AAR_PATH '**/libgnustl_shared.so'
19 |
20 | echo "Installing JSC & ICU in local maven repo"
21 | mvn install:install-file -Dfile=$AAR_PATH -DpomFile=android-jsc.pom
22 |
--------------------------------------------------------------------------------
/jsc/BUCK:
--------------------------------------------------------------------------------
1 | # Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | import os
4 |
5 | SUPPORTED_PLATFORMS = '^android-(armv7|x86)$'
6 |
7 | def unpack_rule(source, from_rule):
8 | genrule(
9 | name = source,
10 | out = source,
11 | cmd = 'unzip -c -q $(location {0}) {1} > $OUT'.format(from_rule, source),
12 | )
13 |
14 | def add_gen_source(source):
15 | _, ext = os.path.splitext(source)
16 | if ext == '.h':
17 | JSC_HEADERS[source] = ':' + source
18 | else:
19 | JSC_SOURCES.append(':' + source)
20 |
21 | ###### END INSPECTOR SOURCES ######
22 |
23 | WTF_EXPORTED_PREPROCESSOR_FLAGS = [
24 | '-D_GLIBCXX_USE_C99_MATH=1',
25 | '-D__GXX_EXPERIMENTAL_CXX0X__',
26 | '-DENABLE_GLOBAL_FASTMALLOC_NEW=0',
27 | ]
28 |
29 | # Dirty hack, StdLibExtras.h assumes incorrectly that is_trivially_destructible
30 | # have been added in 4.8.1 version while it was added in 4.8.0. We emulate PATCH
31 | # version to be 1 so that StdLibExtra.h doesn't try to declare
32 | # is_trivially_destructible
33 | # Except from this single place JSC code doesn't check for 4.8.1 anywhere else
34 | WTF_EXPORTED_PREPROCESSOR_FLAGS.extend([
35 | '-U__GNUC_PATCHLEVEL__',
36 | '-D__GNUC_PATCHLEVEL__=1',
37 | '-DPTHREAD_KEYS_MAX=1024',
38 | '-DINTPTR_MAX=LONG_MAX',
39 | '-Dlog2(x)=(log(x)/log(2.0))',
40 | ])
41 |
42 | cxx_library(
43 | name = 'wtfassertions',
44 | force_static = True,
45 | supported_platforms_regex = SUPPORTED_PLATFORMS,
46 | exported_preprocessor_flags = WTF_EXPORTED_PREPROCESSOR_FLAGS,
47 | preprocessor_flags = [
48 | '-DLOG_TAG="WTF"',
49 | '-U__linux__',
50 | ],
51 | header_namespace = '',
52 | headers = subdir_glob([
53 | ('WTF', '*.h'),
54 | ('WTF/wtf', '*.h'),
55 | ]),
56 | exported_headers = subdir_glob([
57 | ('WTF', 'wtf/**/*.h'),
58 | ('WTF', 'wtf/text/*.h'),
59 | ('extra_headers', 'langinfo.h'),
60 | ]),
61 | srcs = ['WTF/wtf/Assertions.cpp'],
62 | deps = [
63 | '//icu:common',
64 | ],
65 | )
66 |
67 | cxx_library(
68 | name = 'wtf',
69 | soname = 'libwtf.so',
70 | force_static = True,
71 | supported_platforms_regex = SUPPORTED_PLATFORMS,
72 | exported_preprocessor_flags = WTF_EXPORTED_PREPROCESSOR_FLAGS,
73 | preprocessor_flags = [
74 | '-DLOG_TAG="WTF"',
75 |
76 | # Disable icu collation and date formatting
77 | '-DUCONFIG_NO_COLLATION=1',
78 | '-DUCONFIG_NO_FORMATTING=1',
79 | ],
80 | header_namespace = '',
81 | headers = subdir_glob([
82 | ('WTF', '*.h'),
83 | ('WTF/wtf', '*.h'),
84 | ]),
85 | exported_headers = subdir_glob([
86 | ('WTF', 'wtf/**/*.h'),
87 | ('WTF', 'wtf/text/*.h'),
88 | ]),
89 | srcs = ['WTF/wtf/{0}'.format(f) for f in [
90 | 'Atomics.cpp',
91 | 'BitVector.cpp',
92 | 'CompilationThread.cpp',
93 | 'CryptographicallyRandomNumber.cpp',
94 | 'CryptographicUtilities.cpp',
95 | 'CurrentTime.cpp',
96 | 'DataLog.cpp',
97 | 'DateMath.cpp',
98 | 'DecimalNumber.cpp',
99 | 'dtoa.cpp',
100 | 'dtoa/bignum-dtoa.cc',
101 | 'dtoa/bignum.cc',
102 | 'dtoa/cached-powers.cc',
103 | 'dtoa/diy-fp.cc',
104 | 'dtoa/double-conversion.cc',
105 | 'dtoa/fast-dtoa.cc',
106 | 'dtoa/fixed-dtoa.cc',
107 | 'dtoa/strtod.cc',
108 | 'FastBitVector.cpp',
109 | 'FastMalloc.cpp',
110 | 'FilePrintStream.cpp',
111 | 'FunctionDispatcher.cpp',
112 | 'gobject/GlibUtilities.cpp',
113 | 'gobject/GMainLoopSource.cpp',
114 | 'gobject/GRefPtr.cpp',
115 | 'gobject/GThreadSafeMainLoopSource.cpp',
116 | 'GregorianDateTime.cpp',
117 | 'HashTable.cpp',
118 | 'mbmalloc.cpp',
119 | 'MD5.cpp',
120 | 'MediaTime.cpp',
121 | 'MetaAllocator.cpp',
122 | 'NumberOfCores.cpp',
123 | 'OSAllocatorPosix.cpp',
124 | 'OSRandomSource.cpp',
125 | 'PageAllocationAligned.cpp',
126 | 'PageBlock.cpp',
127 | 'ParallelJobsGeneric.cpp',
128 | 'PrintStream.cpp',
129 | 'RAMSize.cpp',
130 | 'RandomNumber.cpp',
131 | 'RefCountedLeakCounter.cpp',
132 | 'SHA1.cpp',
133 | 'SixCharacterHash.cpp',
134 | 'SizeLimits.cpp',
135 | 'StackBounds.cpp',
136 | 'StackStats.cpp',
137 | 'StringPrintStream.cpp',
138 | 'TCSystemAlloc.cpp',
139 | 'text/AtomicString.cpp',
140 | 'text/AtomicStringTable.cpp',
141 | 'text/Base64.cpp',
142 | 'text/CString.cpp',
143 | 'text/StringBuilder.cpp',
144 | 'text/StringImpl.cpp',
145 | 'text/StringStatics.cpp',
146 | 'text/StringView.cpp',
147 | 'text/WTFString.cpp',
148 | 'ThreadIdentifierDataPthreads.cpp',
149 | 'Threading.cpp',
150 | 'ThreadingPthreads.cpp',
151 | 'ThreadingWin.cpp',
152 | 'ThreadSpecificWin.cpp',
153 | 'unicode/UTF8.cpp',
154 | 'WTFThreadData.cpp',
155 | ]],
156 | deps = [
157 | ':wtfassertions',
158 | '//icu:common',
159 | ],
160 | )
161 |
162 | cxx_library(
163 | name = 'wtfcollation',
164 | force_static = True,
165 | supported_platforms_regex = SUPPORTED_PLATFORMS,
166 | header_namespace = '',
167 | headers = subdir_glob([
168 | ('WTF/wtf', '*.h'),
169 | ('', 'extra_headers/*.h'),
170 | ]),
171 | exported_headers = subdir_glob([
172 | ('WTF', 'wtf/**/*.h'),
173 | ('WTF', 'wtf/text/*.h'),
174 | ('', 'WTF/*.h'),
175 | ]),
176 | exported_preprocessor_flags = (
177 | WTF_EXPORTED_PREPROCESSOR_FLAGS + [
178 | # Disable icu collation and date formatting
179 | '-DUCONFIG_NO_COLLATION=1',
180 | '-DUCONFIG_NO_FORMATTING=1',
181 | ]),
182 | preprocessor_flags = [
183 | '-include', 'extra_headers/collation_hack.h',
184 | '-DLOG_TAG="WTF"',
185 | ],
186 | srcs = [
187 | 'WTF/wtf/unicode/CollatorDefault.cpp',
188 | ],
189 | deps = [
190 | ':wtf',
191 | ],
192 | )
193 |
194 | genrule(
195 | name = 'llint_desired_offsets',
196 | out = 'LLIntDesiredOffsets.h',
197 | srcs =
198 | glob(['JavaScriptCore/offlineasm/*.rb']) +
199 | glob(['JavaScriptCore/llint/*.asm']) +
200 | [':InitBytecodes.asm'],
201 | cmd = ' '.join([
202 | 'ruby',
203 | 'JavaScriptCore/offlineasm/generate_offset_extractor.rb',
204 | '-IJavaScriptCore',
205 | '-I.',
206 | 'JavaScriptCore/llint/LowLevelInterpreter.asm',
207 | '$OUT',
208 | ]),
209 | )
210 |
211 | # JSC
212 |
213 | JSC_HEADERS = subdir_glob([
214 | ('JavaScriptCore', 'config.h'),
215 | ('WTF', 'wtf/**/*.h'),
216 | ('JavaScriptCore', 'JavaScriptCorePrefix.h'),
217 | ('', 'JavaScriptCore/API/*.h'),
218 | ('JavaScriptCore/API', '*.h'),
219 | ('JavaScriptCore/assembler', '*.h'),
220 | ('JavaScriptCore/bindings', '*.h'),
221 | ('JavaScriptCore', 'bindings/*.h'),
222 | ('JavaScriptCore/builtins', '*.h'),
223 | ('JavaScriptCore/bytecode', '*.h'),
224 | ('JavaScriptCore/bytecompiler', '*.h'),
225 | ('JavaScriptCore/debugger', '*.h'),
226 | ('JavaScriptCore', 'debugger/*.h'),
227 | ('JavaScriptCore/disassembler', '*.h'),
228 | ('JavaScriptCore/dfg', '*.h'),
229 | ('JavaScriptCore/ForwardingHeaders', '**/*.h'),
230 | ('JavaScriptCore/ftl', '*.h'),
231 | ('JavaScriptCore/heap', '*.h'),
232 | ('JavaScriptCore', 'heap/*.h'),
233 | ('JavaScriptCore/interpreter', '*.h'),
234 | ('JavaScriptCore', 'interpreter/*.h'),
235 | ('JavaScriptCore/inspector', '*.h'),
236 | ('JavaScriptCore', 'inspector/*.h'),
237 | ('JavaScriptCore/inspector/agents', '*.h'),
238 | ('JavaScriptCore/llint', '*.h'),
239 | ('JavaScriptCore/jit', '*.h'),
240 | ('JavaScriptCore/parser', '*.h'),
241 | ('JavaScriptCore/profiler', '*.h'),
242 | ('JavaScriptCore/runtime', '*.h'),
243 | ('JavaScriptCore', 'runtime/*.h'),
244 | ('JavaScriptCore/tools', '*.h'),
245 | ('JavaScriptCore/yarr', '*.h'),
246 | ('JavaScriptCore', 'yarr/*.h'),
247 | ]
248 | )
249 |
250 | JSC_SOURCES = [
251 | 'JavaScriptCore/API/JSBase.cpp',
252 | 'JavaScriptCore/API/JSCallbackConstructor.cpp',
253 | 'JavaScriptCore/API/JSCallbackFunction.cpp',
254 | 'JavaScriptCore/API/JSCallbackObject.cpp',
255 | 'JavaScriptCore/API/JSClassRef.cpp',
256 | 'JavaScriptCore/API/JSContextRef.cpp',
257 | 'JavaScriptCore/API/JSObjectRef.cpp',
258 | 'JavaScriptCore/API/JSProfilerPrivate.cpp',
259 | 'JavaScriptCore/API/JSScriptRef.cpp',
260 | 'JavaScriptCore/API/JSStringRef.cpp',
261 | 'JavaScriptCore/API/JSValueRef.cpp',
262 | 'JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp',
263 | 'JavaScriptCore/API/OpaqueJSString.cpp',
264 | 'JavaScriptCore/assembler/ARMAssembler.cpp',
265 | 'JavaScriptCore/assembler/ARMv7Assembler.cpp',
266 | 'JavaScriptCore/assembler/LinkBuffer.cpp',
267 | 'JavaScriptCore/assembler/MacroAssembler.cpp',
268 | 'JavaScriptCore/assembler/MacroAssemblerARMv7.cpp',
269 | 'JavaScriptCore/assembler/MacroAssemblerX86Common.cpp',
270 | 'JavaScriptCore/bindings/ScriptFunctionCall.cpp',
271 | 'JavaScriptCore/bindings/ScriptObject.cpp',
272 | 'JavaScriptCore/bindings/ScriptValue.cpp',
273 | 'JavaScriptCore/builtins/BuiltinExecutables.cpp',
274 | 'JavaScriptCore/bytecode/ArrayAllocationProfile.cpp',
275 | 'JavaScriptCore/bytecode/ArrayProfile.cpp',
276 | 'JavaScriptCore/bytecode/BytecodeBasicBlock.cpp',
277 | 'JavaScriptCore/bytecode/BytecodeLivenessAnalysis.cpp',
278 | 'JavaScriptCore/bytecode/CallEdge.cpp',
279 | 'JavaScriptCore/bytecode/CallEdgeProfile.cpp',
280 | 'JavaScriptCore/bytecode/CallLinkInfo.cpp',
281 | 'JavaScriptCore/bytecode/CallLinkStatus.cpp',
282 | 'JavaScriptCore/bytecode/CallVariant.cpp',
283 | 'JavaScriptCore/bytecode/CodeBlock.cpp',
284 | 'JavaScriptCore/bytecode/CodeBlockHash.cpp',
285 | 'JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.cpp',
286 | 'JavaScriptCore/bytecode/CodeOrigin.cpp',
287 | 'JavaScriptCore/bytecode/CodeType.cpp',
288 | 'JavaScriptCore/bytecode/ComplexGetStatus.cpp',
289 | 'JavaScriptCore/bytecode/ConstantStructureCheck.cpp',
290 | 'JavaScriptCore/bytecode/DeferredCompilationCallback.cpp',
291 | 'JavaScriptCore/bytecode/DFGExitProfile.cpp',
292 | 'JavaScriptCore/bytecode/ExecutionCounter.cpp',
293 | 'JavaScriptCore/bytecode/ExitingJITType.cpp',
294 | 'JavaScriptCore/bytecode/ExitKind.cpp',
295 | 'JavaScriptCore/bytecode/GetByIdStatus.cpp',
296 | 'JavaScriptCore/bytecode/GetByIdVariant.cpp',
297 | 'JavaScriptCore/bytecode/InlineCallFrameSet.cpp',
298 | 'JavaScriptCore/bytecode/JumpTable.cpp',
299 | 'JavaScriptCore/bytecode/LazyOperandValueProfile.cpp',
300 | 'JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp',
301 | 'JavaScriptCore/bytecode/Opcode.cpp',
302 | 'JavaScriptCore/bytecode/PolymorphicGetByIdList.cpp',
303 | 'JavaScriptCore/bytecode/PolymorphicPutByIdList.cpp',
304 | 'JavaScriptCore/bytecode/PreciseJumpTargets.cpp',
305 | 'JavaScriptCore/bytecode/PutByIdStatus.cpp',
306 | 'JavaScriptCore/bytecode/PutByIdVariant.cpp',
307 | 'JavaScriptCore/bytecode/ReduceWhitespace.cpp',
308 | 'JavaScriptCore/bytecode/SamplingTool.cpp',
309 | 'JavaScriptCore/bytecode/SpecialPointer.cpp',
310 | 'JavaScriptCore/bytecode/SpeculatedType.cpp',
311 | 'JavaScriptCore/bytecode/StructureSet.cpp',
312 | 'JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp',
313 | 'JavaScriptCore/bytecode/StructureStubInfo.cpp',
314 | 'JavaScriptCore/bytecode/ToThisStatus.cpp',
315 | 'JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp',
316 | 'JavaScriptCore/bytecode/UnlinkedInstructionStream.cpp',
317 | 'JavaScriptCore/bytecode/ValueRecovery.cpp',
318 | 'JavaScriptCore/bytecode/VariableWatchpointSet.cpp',
319 | 'JavaScriptCore/bytecode/Watchpoint.cpp',
320 | 'JavaScriptCore/bytecompiler/BytecodeGenerator.cpp',
321 | 'JavaScriptCore/bytecompiler/NodesCodegen.cpp',
322 | 'JavaScriptCore/debugger/Debugger.cpp',
323 | 'JavaScriptCore/debugger/DebuggerCallFrame.cpp',
324 | 'JavaScriptCore/debugger/DebuggerScope.cpp',
325 | 'JavaScriptCore/dfg/DFGAbstractHeap.cpp',
326 | 'JavaScriptCore/dfg/DFGAbstractValue.cpp',
327 | 'JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp',
328 | 'JavaScriptCore/dfg/DFGArithMode.cpp',
329 | 'JavaScriptCore/dfg/DFGArrayMode.cpp',
330 | 'JavaScriptCore/dfg/DFGAtTailAbstractState.cpp',
331 | 'JavaScriptCore/dfg/DFGAvailability.cpp',
332 | 'JavaScriptCore/dfg/DFGAvailabilityMap.cpp',
333 | 'JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp',
334 | 'JavaScriptCore/dfg/DFGBasicBlock.cpp',
335 | 'JavaScriptCore/dfg/DFGBinarySwitch.cpp',
336 | 'JavaScriptCore/dfg/DFGBlockInsertionSet.cpp',
337 | 'JavaScriptCore/dfg/DFGBlockSet.cpp',
338 | 'JavaScriptCore/dfg/DFGBlockWorklist.cpp',
339 | 'JavaScriptCore/dfg/DFGByteCodeParser.cpp',
340 | 'JavaScriptCore/dfg/DFGCapabilities.cpp',
341 | 'JavaScriptCore/dfg/DFGCFAPhase.cpp',
342 | 'JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp',
343 | 'JavaScriptCore/dfg/DFGClobberize.cpp',
344 | 'JavaScriptCore/dfg/DFGClobberSet.cpp',
345 | 'JavaScriptCore/dfg/DFGCommon.cpp',
346 | 'JavaScriptCore/dfg/DFGCommonData.cpp',
347 | 'JavaScriptCore/dfg/DFGCompilationKey.cpp',
348 | 'JavaScriptCore/dfg/DFGCompilationMode.cpp',
349 | 'JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp',
350 | 'JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp',
351 | 'JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp',
352 | 'JavaScriptCore/dfg/DFGCSEPhase.cpp',
353 | 'JavaScriptCore/dfg/DFGDCEPhase.cpp',
354 | 'JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp',
355 | 'JavaScriptCore/dfg/DFGDesiredTransitions.cpp',
356 | 'JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp',
357 | 'JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp',
358 | 'JavaScriptCore/dfg/DFGDesiredWriteBarriers.cpp',
359 | 'JavaScriptCore/dfg/DFGDisassembler.cpp',
360 | 'JavaScriptCore/dfg/DFGDoesGC.cpp',
361 | 'JavaScriptCore/dfg/DFGDominators.cpp',
362 | 'JavaScriptCore/dfg/DFGDriver.cpp',
363 | 'JavaScriptCore/dfg/DFGEdge.cpp',
364 | 'JavaScriptCore/dfg/DFGFailedFinalizer.cpp',
365 | 'JavaScriptCore/dfg/DFGFinalizer.cpp',
366 | 'JavaScriptCore/dfg/DFGFixupPhase.cpp',
367 | 'JavaScriptCore/dfg/DFGFlushedAt.cpp',
368 | 'JavaScriptCore/dfg/DFGFlushFormat.cpp',
369 | 'JavaScriptCore/dfg/DFGFrozenValue.cpp',
370 | 'JavaScriptCore/dfg/DFGFunctionWhitelist.cpp',
371 | 'JavaScriptCore/dfg/DFGGraph.cpp',
372 | 'JavaScriptCore/dfg/DFGGraphSafepoint.cpp',
373 | 'JavaScriptCore/dfg/DFGHeapLocation.cpp',
374 | 'JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp',
375 | 'JavaScriptCore/dfg/DFGInsertOSRHintsForUpdate.cpp',
376 | 'JavaScriptCore/dfg/DFGIntegerCheckCombiningPhase.cpp',
377 | 'JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp',
378 | 'JavaScriptCore/dfg/DFGJITCode.cpp',
379 | 'JavaScriptCore/dfg/DFGJITCompiler.cpp',
380 | 'JavaScriptCore/dfg/DFGJITFinalizer.cpp',
381 | 'JavaScriptCore/dfg/DFGJumpReplacement.cpp',
382 | 'JavaScriptCore/dfg/DFGLazyJSValue.cpp',
383 | 'JavaScriptCore/dfg/DFGLICMPhase.cpp',
384 | 'JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp',
385 | 'JavaScriptCore/dfg/DFGLongLivedState.cpp',
386 | 'JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp',
387 | 'JavaScriptCore/dfg/DFGMayExit.cpp',
388 | 'JavaScriptCore/dfg/DFGMinifiedNode.cpp',
389 | 'JavaScriptCore/dfg/DFGNaiveDominators.cpp',
390 | 'JavaScriptCore/dfg/DFGNaturalLoops.cpp',
391 | 'JavaScriptCore/dfg/DFGNode.cpp',
392 | 'JavaScriptCore/dfg/DFGNodeFlags.cpp',
393 | 'JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp',
394 | 'JavaScriptCore/dfg/DFGObjectMaterializationData.cpp',
395 | 'JavaScriptCore/dfg/DFGOperations.cpp',
396 | 'JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp',
397 | 'JavaScriptCore/dfg/DFGOSREntry.cpp',
398 | 'JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp',
399 | 'JavaScriptCore/dfg/DFGOSRExit.cpp',
400 | 'JavaScriptCore/dfg/DFGOSRExitBase.cpp',
401 | 'JavaScriptCore/dfg/DFGOSRExitCompiler.cpp',
402 | 'JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp',
403 | 'JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp',
404 | 'JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp',
405 | 'JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp',
406 | 'JavaScriptCore/dfg/DFGOSRExitPreparation.cpp',
407 | 'JavaScriptCore/dfg/DFGPhantomCanonicalizationPhase.cpp',
408 | 'JavaScriptCore/dfg/DFGPhantomRemovalPhase.cpp',
409 | 'JavaScriptCore/dfg/DFGPhase.cpp',
410 | 'JavaScriptCore/dfg/DFGPhiChildren.cpp',
411 | 'JavaScriptCore/dfg/DFGPlan.cpp',
412 | 'JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp',
413 | 'JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp',
414 | 'JavaScriptCore/dfg/DFGPrePostNumbering.cpp',
415 | 'JavaScriptCore/dfg/DFGPromotedHeapLocation.cpp',
416 | 'JavaScriptCore/dfg/DFGPureValue.cpp',
417 | 'JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp',
418 | 'JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp',
419 | 'JavaScriptCore/dfg/DFGSafepoint.cpp',
420 | 'JavaScriptCore/dfg/DFGSpeculativeJIT.cpp',
421 | 'JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp',
422 | 'JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp',
423 | 'JavaScriptCore/dfg/DFGSSACalculator.cpp',
424 | 'JavaScriptCore/dfg/DFGSSAConversionPhase.cpp',
425 | 'JavaScriptCore/dfg/DFGSSALoweringPhase.cpp',
426 | 'JavaScriptCore/dfg/DFGStackLayoutPhase.cpp',
427 | 'JavaScriptCore/dfg/DFGStaticExecutionCountEstimationPhase.cpp',
428 | 'JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp',
429 | 'JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp',
430 | 'JavaScriptCore/dfg/DFGStructureAbstractValue.cpp',
431 | 'JavaScriptCore/dfg/DFGStructureRegistrationPhase.cpp',
432 | 'JavaScriptCore/dfg/DFGThreadData.cpp',
433 | 'JavaScriptCore/dfg/DFGThunks.cpp',
434 | 'JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp',
435 | 'JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp',
436 | 'JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp',
437 | 'JavaScriptCore/dfg/DFGTransition.cpp',
438 | 'JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp',
439 | 'JavaScriptCore/dfg/DFGUnificationPhase.cpp',
440 | 'JavaScriptCore/dfg/DFGUseKind.cpp',
441 | 'JavaScriptCore/dfg/DFGValidate.cpp',
442 | 'JavaScriptCore/dfg/DFGValueSource.cpp',
443 | 'JavaScriptCore/dfg/DFGValueStrength.cpp',
444 | 'JavaScriptCore/dfg/DFGVariableAccessData.cpp',
445 | 'JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp',
446 | 'JavaScriptCore/dfg/DFGVariableEvent.cpp',
447 | 'JavaScriptCore/dfg/DFGVariableEventStream.cpp',
448 | 'JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp',
449 | 'JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp',
450 | 'JavaScriptCore/dfg/DFGWorklist.cpp',
451 | 'JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp',
452 | 'JavaScriptCore/disassembler/ARM64Disassembler.cpp',
453 | 'JavaScriptCore/disassembler/ARMv7/ARMv7DOpcode.cpp',
454 | 'JavaScriptCore/disassembler/ARMv7Disassembler.cpp',
455 | 'JavaScriptCore/disassembler/Disassembler.cpp',
456 | 'JavaScriptCore/disassembler/LLVMDisassembler.cpp',
457 | 'JavaScriptCore/disassembler/UDis86Disassembler.cpp',
458 | 'JavaScriptCore/disassembler/X86Disassembler.cpp',
459 | 'JavaScriptCore/ftl/FTLAbstractHeap.cpp',
460 | 'JavaScriptCore/ftl/FTLAbstractHeapRepository.cpp',
461 | 'JavaScriptCore/ftl/FTLAvailableRecovery.cpp',
462 | 'JavaScriptCore/ftl/FTLCapabilities.cpp',
463 | 'JavaScriptCore/ftl/FTLCommonValues.cpp',
464 | 'JavaScriptCore/ftl/FTLCompile.cpp',
465 | 'JavaScriptCore/ftl/FTLDataSection.cpp',
466 | 'JavaScriptCore/ftl/FTLDWARFDebugLineInfo.cpp',
467 | 'JavaScriptCore/ftl/FTLDWARFRegister.cpp',
468 | 'JavaScriptCore/ftl/FTLExitArgument.cpp',
469 | 'JavaScriptCore/ftl/FTLExitArgumentForOperand.cpp',
470 | 'JavaScriptCore/ftl/FTLExitPropertyValue.cpp',
471 | 'JavaScriptCore/ftl/FTLExitThunkGenerator.cpp',
472 | 'JavaScriptCore/ftl/FTLExitTimeObjectMaterialization.cpp',
473 | 'JavaScriptCore/ftl/FTLExitValue.cpp',
474 | 'JavaScriptCore/ftl/FTLFail.cpp',
475 | 'JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp',
476 | 'JavaScriptCore/ftl/FTLInlineCacheSize.cpp',
477 | 'JavaScriptCore/ftl/FTLIntrinsicRepository.cpp',
478 | 'JavaScriptCore/ftl/FTLJITCode.cpp',
479 | 'JavaScriptCore/ftl/FTLJITFinalizer.cpp',
480 | 'JavaScriptCore/ftl/FTLJSCall.cpp',
481 | 'JavaScriptCore/ftl/FTLLink.cpp',
482 | 'JavaScriptCore/ftl/FTLLocation.cpp',
483 | 'JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp',
484 | 'JavaScriptCore/ftl/FTLOperations.cpp',
485 | 'JavaScriptCore/ftl/FTLOSREntry.cpp',
486 | 'JavaScriptCore/ftl/FTLOSRExit.cpp',
487 | 'JavaScriptCore/ftl/FTLOSRExitCompiler.cpp',
488 | 'JavaScriptCore/ftl/FTLOutput.cpp',
489 | 'JavaScriptCore/ftl/FTLRecoveryOpcode.cpp',
490 | 'JavaScriptCore/ftl/FTLRegisterAtOffset.cpp',
491 | 'JavaScriptCore/ftl/FTLSaveRestore.cpp',
492 | 'JavaScriptCore/ftl/FTLSlowPathCall.cpp',
493 | 'JavaScriptCore/ftl/FTLSlowPathCallKey.cpp',
494 | 'JavaScriptCore/ftl/FTLStackMaps.cpp',
495 | 'JavaScriptCore/ftl/FTLState.cpp',
496 | 'JavaScriptCore/ftl/FTLThunks.cpp',
497 | 'JavaScriptCore/ftl/FTLUnwindInfo.cpp',
498 | 'JavaScriptCore/ftl/FTLValueFormat.cpp',
499 | 'JavaScriptCore/ftl/FTLValueRange.cpp',
500 | 'JavaScriptCore/heap/BlockAllocator.cpp',
501 | 'JavaScriptCore/heap/CodeBlockSet.cpp',
502 | 'JavaScriptCore/heap/ConservativeRoots.cpp',
503 | 'JavaScriptCore/heap/CopiedSpace.cpp',
504 | 'JavaScriptCore/heap/CopyVisitor.cpp',
505 | 'JavaScriptCore/heap/DeferGC.cpp',
506 | 'JavaScriptCore/heap/EdenGCActivityCallback.cpp',
507 | 'JavaScriptCore/heap/FullGCActivityCallback.cpp',
508 | 'JavaScriptCore/heap/GCActivityCallback.cpp',
509 | 'JavaScriptCore/heap/GCLogging.cpp',
510 | 'JavaScriptCore/heap/GCThread.cpp',
511 | 'JavaScriptCore/heap/GCThreadSharedData.cpp',
512 | 'JavaScriptCore/heap/HandleSet.cpp',
513 | 'JavaScriptCore/heap/HandleStack.cpp',
514 | 'JavaScriptCore/heap/Heap.cpp',
515 | 'JavaScriptCore/heap/HeapStatistics.cpp',
516 | 'JavaScriptCore/heap/HeapTimer.cpp',
517 | 'JavaScriptCore/heap/IncrementalSweeper.cpp',
518 | 'JavaScriptCore/heap/JITStubRoutineSet.cpp',
519 | 'JavaScriptCore/heap/MachineStackMarker.cpp',
520 | 'JavaScriptCore/heap/MarkedAllocator.cpp',
521 | 'JavaScriptCore/heap/MarkedBlock.cpp',
522 | 'JavaScriptCore/heap/MarkedSpace.cpp',
523 | 'JavaScriptCore/heap/MarkStack.cpp',
524 | 'JavaScriptCore/heap/SlotVisitor.cpp',
525 | 'JavaScriptCore/heap/SuperRegion.cpp',
526 | 'JavaScriptCore/heap/Weak.cpp',
527 | 'JavaScriptCore/heap/WeakBlock.cpp',
528 | 'JavaScriptCore/heap/WeakHandleOwner.cpp',
529 | 'JavaScriptCore/heap/WeakSet.cpp',
530 | 'JavaScriptCore/heap/WriteBarrierBuffer.cpp',
531 | 'JavaScriptCore/heap/WriteBarrierSupport.cpp',
532 | 'JavaScriptCore/inspector/agents/InspectorAgent.cpp',
533 | 'JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp',
534 | 'JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp',
535 | 'JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp',
536 | 'JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.cpp',
537 | 'JavaScriptCore/inspector/agents/JSGlobalObjectDebuggerAgent.cpp',
538 | 'JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.cpp',
539 | 'JavaScriptCore/inspector/ConsoleMessage.cpp',
540 | 'JavaScriptCore/inspector/ContentSearchUtilities.cpp',
541 | 'JavaScriptCore/inspector/EventLoop.cpp',
542 | 'JavaScriptCore/inspector/IdentifiersFactory.cpp',
543 | 'JavaScriptCore/inspector/InjectedScript.cpp',
544 | 'JavaScriptCore/inspector/InjectedScriptBase.cpp',
545 | 'JavaScriptCore/inspector/InjectedScriptHost.cpp',
546 | 'JavaScriptCore/inspector/InjectedScriptManager.cpp',
547 | 'JavaScriptCore/inspector/InjectedScriptModule.cpp',
548 | 'JavaScriptCore/inspector/InspectorAgentRegistry.cpp',
549 | 'JavaScriptCore/inspector/InspectorBackendDispatcher.cpp',
550 | 'JavaScriptCore/inspector/InspectorValues.cpp',
551 | 'JavaScriptCore/inspector/JavaScriptCallFrame.cpp',
552 | 'JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp',
553 | 'JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.cpp',
554 | 'JavaScriptCore/inspector/JSInjectedScriptHost.cpp',
555 | 'JavaScriptCore/inspector/JSInjectedScriptHostPrototype.cpp',
556 | 'JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp',
557 | 'JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp',
558 | 'JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.cpp',
559 | 'JavaScriptCore/inspector/ScriptArguments.cpp',
560 | 'JavaScriptCore/inspector/ScriptCallFrame.cpp',
561 | 'JavaScriptCore/inspector/ScriptCallStack.cpp',
562 | 'JavaScriptCore/inspector/ScriptCallStackFactory.cpp',
563 | 'JavaScriptCore/inspector/ScriptDebugServer.cpp',
564 | 'JavaScriptCore/interpreter/AbstractPC.cpp',
565 | 'JavaScriptCore/interpreter/CallFrame.cpp',
566 | 'JavaScriptCore/interpreter/Interpreter.cpp',
567 | 'JavaScriptCore/interpreter/JSStack.cpp',
568 | 'JavaScriptCore/interpreter/ProtoCallFrame.cpp',
569 | 'JavaScriptCore/interpreter/StackVisitor.cpp',
570 | 'JavaScriptCore/interpreter/VMInspector.cpp',
571 | 'JavaScriptCore/jit/AccessorCallJITStubRoutine.cpp',
572 | 'JavaScriptCore/jit/ArityCheckFailReturnThunks.cpp',
573 | 'JavaScriptCore/jit/AssemblyHelpers.cpp',
574 | 'JavaScriptCore/jit/ClosureCallStubRoutine.cpp',
575 | 'JavaScriptCore/jit/ExecutableAllocator.cpp',
576 | 'JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp',
577 | 'JavaScriptCore/jit/GCAwareJITStubRoutine.cpp',
578 | 'JavaScriptCore/jit/HostCallReturnValue.cpp',
579 | 'JavaScriptCore/jit/JIT.cpp',
580 | 'JavaScriptCore/jit/JITArithmetic.cpp',
581 | 'JavaScriptCore/jit/JITArithmetic32_64.cpp',
582 | 'JavaScriptCore/jit/JITCall.cpp',
583 | 'JavaScriptCore/jit/JITCall32_64.cpp',
584 | 'JavaScriptCore/jit/JITCode.cpp',
585 | 'JavaScriptCore/jit/JITDisassembler.cpp',
586 | 'JavaScriptCore/jit/JITExceptions.cpp',
587 | 'JavaScriptCore/jit/JITInlineCacheGenerator.cpp',
588 | 'JavaScriptCore/jit/JITOpcodes.cpp',
589 | 'JavaScriptCore/jit/JITOpcodes32_64.cpp',
590 | 'JavaScriptCore/jit/JITOperations.cpp',
591 | 'JavaScriptCore/jit/JITOperationsMSVC64.cpp',
592 | 'JavaScriptCore/jit/JITPropertyAccess.cpp',
593 | 'JavaScriptCore/jit/JITPropertyAccess32_64.cpp',
594 | 'JavaScriptCore/jit/JITStubRoutine.cpp',
595 | 'JavaScriptCore/jit/JITStubs.cpp',
596 | 'JavaScriptCore/jit/JITThunks.cpp',
597 | 'JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.cpp',
598 | 'JavaScriptCore/jit/Reg.cpp',
599 | 'JavaScriptCore/jit/RegisterPreservationWrapperGenerator.cpp',
600 | 'JavaScriptCore/jit/RegisterSet.cpp',
601 | 'JavaScriptCore/jit/Repatch.cpp',
602 | 'JavaScriptCore/jit/ScratchRegisterAllocator.cpp',
603 | 'JavaScriptCore/jit/TempRegisterSet.cpp',
604 | 'JavaScriptCore/jit/ThunkGenerators.cpp',
605 | 'JavaScriptCore/llint/LLIntCLoop.cpp',
606 | 'JavaScriptCore/llint/LLIntData.cpp',
607 | 'JavaScriptCore/llint/LLIntEntrypoint.cpp',
608 | 'JavaScriptCore/llint/LLIntExceptions.cpp',
609 | 'JavaScriptCore/llint/LLIntSlowPaths.cpp',
610 | 'JavaScriptCore/llint/LLIntThunks.cpp',
611 | 'JavaScriptCore/llint/LowLevelInterpreter.cpp',
612 | 'JavaScriptCore/llvm/InitializeLLVM.cpp',
613 | 'JavaScriptCore/llvm/InitializeLLVMLinux.cpp',
614 | 'JavaScriptCore/llvm/InitializeLLVMMac.cpp',
615 | 'JavaScriptCore/llvm/InitializeLLVMPOSIX.cpp',
616 | 'JavaScriptCore/llvm/library/LLVMAnchor.cpp',
617 | 'JavaScriptCore/llvm/library/LLVMExports.cpp',
618 | 'JavaScriptCore/llvm/library/LLVMOverrides.cpp',
619 | 'JavaScriptCore/llvm/LLVMAPI.cpp',
620 | 'JavaScriptCore/parser/Lexer.cpp',
621 | 'JavaScriptCore/parser/Nodes.cpp',
622 | 'JavaScriptCore/parser/Parser.cpp',
623 | 'JavaScriptCore/parser/ParserArena.cpp',
624 | 'JavaScriptCore/parser/SourceCode.cpp',
625 | 'JavaScriptCore/parser/SourceProvider.cpp',
626 | 'JavaScriptCore/parser/SourceProviderCache.cpp',
627 | 'JavaScriptCore/profiler/LegacyProfiler.cpp',
628 | 'JavaScriptCore/profiler/Profile.cpp',
629 | 'JavaScriptCore/profiler/ProfileGenerator.cpp',
630 | 'JavaScriptCore/profiler/ProfileNode.cpp',
631 | 'JavaScriptCore/profiler/ProfilerBytecode.cpp',
632 | 'JavaScriptCore/profiler/ProfilerBytecodes.cpp',
633 | 'JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp',
634 | 'JavaScriptCore/profiler/ProfilerCompilation.cpp',
635 | 'JavaScriptCore/profiler/ProfilerCompilationKind.cpp',
636 | 'JavaScriptCore/profiler/ProfilerCompiledBytecode.cpp',
637 | 'JavaScriptCore/profiler/ProfilerDatabase.cpp',
638 | 'JavaScriptCore/profiler/ProfilerJettisonReason.cpp',
639 | 'JavaScriptCore/profiler/ProfilerOrigin.cpp',
640 | 'JavaScriptCore/profiler/ProfilerOriginStack.cpp',
641 | 'JavaScriptCore/profiler/ProfilerOSRExit.cpp',
642 | 'JavaScriptCore/profiler/ProfilerOSRExitSite.cpp',
643 | 'JavaScriptCore/profiler/ProfilerProfiledBytecodes.cpp',
644 | 'JavaScriptCore/replay/EncodedValue.cpp',
645 | 'JavaScriptCore/replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp',
646 | 'JavaScriptCore/replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp',
647 | 'JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp',
648 | 'JavaScriptCore/replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp',
649 | 'JavaScriptCore/replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.cpp',
650 | 'JavaScriptCore/replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp',
651 | 'JavaScriptCore/replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.cpp',
652 | 'JavaScriptCore/replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp',
653 | 'JavaScriptCore/runtime/ArgList.cpp',
654 | 'JavaScriptCore/runtime/Arguments.cpp',
655 | 'JavaScriptCore/runtime/ArgumentsIteratorConstructor.cpp',
656 | 'JavaScriptCore/runtime/ArgumentsIteratorPrototype.cpp',
657 | 'JavaScriptCore/runtime/ArrayBuffer.cpp',
658 | 'JavaScriptCore/runtime/ArrayBufferNeuteringWatchpoint.cpp',
659 | 'JavaScriptCore/runtime/ArrayBufferView.cpp',
660 | 'JavaScriptCore/runtime/ArrayConstructor.cpp',
661 | 'JavaScriptCore/runtime/ArrayIteratorConstructor.cpp',
662 | 'JavaScriptCore/runtime/ArrayIteratorPrototype.cpp',
663 | 'JavaScriptCore/runtime/ArrayPrototype.cpp',
664 | 'JavaScriptCore/runtime/BooleanConstructor.cpp',
665 | 'JavaScriptCore/runtime/BooleanObject.cpp',
666 | 'JavaScriptCore/runtime/BooleanPrototype.cpp',
667 | 'JavaScriptCore/runtime/CallData.cpp',
668 | 'JavaScriptCore/runtime/CodeCache.cpp',
669 | 'JavaScriptCore/runtime/CodeSpecializationKind.cpp',
670 | 'JavaScriptCore/runtime/CommonIdentifiers.cpp',
671 | 'JavaScriptCore/runtime/CommonSlowPaths.cpp',
672 | 'JavaScriptCore/runtime/CommonSlowPathsExceptions.cpp',
673 | 'JavaScriptCore/runtime/CompilationResult.cpp',
674 | 'JavaScriptCore/runtime/Completion.cpp',
675 | 'JavaScriptCore/runtime/ConsoleClient.cpp',
676 | 'JavaScriptCore/runtime/ConsolePrototype.cpp',
677 | 'JavaScriptCore/runtime/ConstructData.cpp',
678 | 'JavaScriptCore/runtime/CustomGetterSetter.cpp',
679 | 'JavaScriptCore/runtime/DataView.cpp',
680 | 'JavaScriptCore/runtime/DateConstructor.cpp',
681 | 'JavaScriptCore/runtime/DateConversion.cpp',
682 | 'JavaScriptCore/runtime/DateInstance.cpp',
683 | 'JavaScriptCore/runtime/DatePrototype.cpp',
684 | 'JavaScriptCore/runtime/DumpContext.cpp',
685 | 'JavaScriptCore/runtime/Error.cpp',
686 | 'JavaScriptCore/runtime/ErrorConstructor.cpp',
687 | 'JavaScriptCore/runtime/ErrorHandlingScope.cpp',
688 | 'JavaScriptCore/runtime/ErrorInstance.cpp',
689 | 'JavaScriptCore/runtime/ErrorPrototype.cpp',
690 | 'JavaScriptCore/runtime/ExceptionFuzz.cpp',
691 | 'JavaScriptCore/runtime/ExceptionHelpers.cpp',
692 | 'JavaScriptCore/runtime/Executable.cpp',
693 | 'JavaScriptCore/runtime/FunctionConstructor.cpp',
694 | 'JavaScriptCore/runtime/FunctionExecutableDump.cpp',
695 | 'JavaScriptCore/runtime/FunctionHasExecutedCache.cpp',
696 | 'JavaScriptCore/runtime/FunctionPrototype.cpp',
697 | 'JavaScriptCore/runtime/GetterSetter.cpp',
698 | 'JavaScriptCore/runtime/Identifier.cpp',
699 | 'JavaScriptCore/runtime/IndexingType.cpp',
700 | 'JavaScriptCore/runtime/InitializeThreading.cpp',
701 | 'JavaScriptCore/runtime/IntendedStructureChain.cpp',
702 | 'JavaScriptCore/runtime/InternalFunction.cpp',
703 | 'JavaScriptCore/runtime/JSAPIValueWrapper.cpp',
704 | 'JavaScriptCore/runtime/JSArgumentsIterator.cpp',
705 | 'JavaScriptCore/runtime/JSArray.cpp',
706 | 'JavaScriptCore/runtime/JSArrayBuffer.cpp',
707 | 'JavaScriptCore/runtime/JSArrayBufferConstructor.cpp',
708 | 'JavaScriptCore/runtime/JSArrayBufferPrototype.cpp',
709 | 'JavaScriptCore/runtime/JSArrayBufferView.cpp',
710 | 'JavaScriptCore/runtime/JSArrayIterator.cpp',
711 | 'JavaScriptCore/runtime/JSBoundFunction.cpp',
712 | 'JavaScriptCore/runtime/JSCallee.cpp',
713 | 'JavaScriptCore/runtime/JSCell.cpp',
714 | 'JavaScriptCore/runtime/JSCJSValue.cpp',
715 | 'JavaScriptCore/runtime/JSConsole.cpp',
716 | 'JavaScriptCore/runtime/JSDataView.cpp',
717 | 'JavaScriptCore/runtime/JSDataViewPrototype.cpp',
718 | 'JavaScriptCore/runtime/JSDateMath.cpp',
719 | 'JavaScriptCore/runtime/JSEnvironmentRecord.cpp',
720 | 'JavaScriptCore/runtime/JSFunction.cpp',
721 | 'JavaScriptCore/runtime/JSGlobalObject.cpp',
722 | 'JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp',
723 | 'JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp',
724 | 'JavaScriptCore/runtime/JSLexicalEnvironment.cpp',
725 | 'JavaScriptCore/runtime/JSLock.cpp',
726 | 'JavaScriptCore/runtime/JSMap.cpp',
727 | 'JavaScriptCore/runtime/JSMapIterator.cpp',
728 | 'JavaScriptCore/runtime/JSNameScope.cpp',
729 | 'JavaScriptCore/runtime/JSNotAnObject.cpp',
730 | 'JavaScriptCore/runtime/JSObject.cpp',
731 | 'JavaScriptCore/runtime/JSONObject.cpp',
732 | 'JavaScriptCore/runtime/JSPromise.cpp',
733 | 'JavaScriptCore/runtime/JSPromiseConstructor.cpp',
734 | 'JavaScriptCore/runtime/JSPromiseDeferred.cpp',
735 | 'JavaScriptCore/runtime/JSPromiseFunctions.cpp',
736 | 'JavaScriptCore/runtime/JSPromisePrototype.cpp',
737 | 'JavaScriptCore/runtime/JSPromiseReaction.cpp',
738 | 'JavaScriptCore/runtime/JSPropertyNameEnumerator.cpp',
739 | 'JavaScriptCore/runtime/JSProxy.cpp',
740 | 'JavaScriptCore/runtime/JSScope.cpp',
741 | 'JavaScriptCore/runtime/JSSegmentedVariableObject.cpp',
742 | 'JavaScriptCore/runtime/JSSet.cpp',
743 | 'JavaScriptCore/runtime/JSSetIterator.cpp',
744 | 'JavaScriptCore/runtime/JSString.cpp',
745 | 'JavaScriptCore/runtime/JSStringJoiner.cpp',
746 | 'JavaScriptCore/runtime/JSSymbolTableObject.cpp',
747 | 'JavaScriptCore/runtime/JSTypedArrayConstructors.cpp',
748 | 'JavaScriptCore/runtime/JSTypedArrayPrototypes.cpp',
749 | 'JavaScriptCore/runtime/JSTypedArrays.cpp',
750 | 'JavaScriptCore/runtime/JSWeakMap.cpp',
751 | 'JavaScriptCore/runtime/JSWithScope.cpp',
752 | 'JavaScriptCore/runtime/JSWrapperObject.cpp',
753 | 'JavaScriptCore/runtime/LiteralParser.cpp',
754 | 'JavaScriptCore/runtime/Lookup.cpp',
755 | 'JavaScriptCore/runtime/MapConstructor.cpp',
756 | 'JavaScriptCore/runtime/MapData.cpp',
757 | 'JavaScriptCore/runtime/MapIteratorConstructor.cpp',
758 | 'JavaScriptCore/runtime/MapIteratorPrototype.cpp',
759 | 'JavaScriptCore/runtime/MapPrototype.cpp',
760 | 'JavaScriptCore/runtime/MathObject.cpp',
761 | 'JavaScriptCore/runtime/MemoryStatistics.cpp',
762 | 'JavaScriptCore/runtime/NameConstructor.cpp',
763 | 'JavaScriptCore/runtime/NameInstance.cpp',
764 | 'JavaScriptCore/runtime/NamePrototype.cpp',
765 | 'JavaScriptCore/runtime/NativeErrorConstructor.cpp',
766 | 'JavaScriptCore/runtime/NativeErrorPrototype.cpp',
767 | 'JavaScriptCore/runtime/NumberConstructor.cpp',
768 | 'JavaScriptCore/runtime/NumberObject.cpp',
769 | 'JavaScriptCore/runtime/NumberPrototype.cpp',
770 | 'JavaScriptCore/runtime/ObjectConstructor.cpp',
771 | 'JavaScriptCore/runtime/ObjectPrototype.cpp',
772 | 'JavaScriptCore/runtime/Operations.cpp',
773 | 'JavaScriptCore/runtime/Options.cpp',
774 | 'JavaScriptCore/runtime/PropertyDescriptor.cpp',
775 | 'JavaScriptCore/runtime/PropertyNameArray.cpp',
776 | 'JavaScriptCore/runtime/PropertySlot.cpp',
777 | 'JavaScriptCore/runtime/PropertyTable.cpp',
778 | 'JavaScriptCore/runtime/PrototypeMap.cpp',
779 | 'JavaScriptCore/runtime/RegExp.cpp',
780 | 'JavaScriptCore/runtime/RegExpCache.cpp',
781 | 'JavaScriptCore/runtime/RegExpCachedResult.cpp',
782 | 'JavaScriptCore/runtime/RegExpConstructor.cpp',
783 | 'JavaScriptCore/runtime/RegExpMatchesArray.cpp',
784 | 'JavaScriptCore/runtime/RegExpObject.cpp',
785 | 'JavaScriptCore/runtime/RegExpPrototype.cpp',
786 | 'JavaScriptCore/runtime/SamplingCounter.cpp',
787 | 'JavaScriptCore/runtime/SetConstructor.cpp',
788 | 'JavaScriptCore/runtime/SetIteratorConstructor.cpp',
789 | 'JavaScriptCore/runtime/SetIteratorPrototype.cpp',
790 | 'JavaScriptCore/runtime/SetPrototype.cpp',
791 | 'JavaScriptCore/runtime/SimpleTypedArrayController.cpp',
792 | 'JavaScriptCore/runtime/SmallStrings.cpp',
793 | 'JavaScriptCore/runtime/SparseArrayValueMap.cpp',
794 | 'JavaScriptCore/runtime/StrictEvalActivation.cpp',
795 | 'JavaScriptCore/runtime/StringConstructor.cpp',
796 | 'JavaScriptCore/runtime/StringObject.cpp',
797 | 'JavaScriptCore/runtime/StringPrototype.cpp',
798 | 'JavaScriptCore/runtime/StringRecursionChecker.cpp',
799 | 'JavaScriptCore/runtime/Structure.cpp',
800 | 'JavaScriptCore/runtime/StructureChain.cpp',
801 | 'JavaScriptCore/runtime/StructureIDTable.cpp',
802 | 'JavaScriptCore/runtime/StructureRareData.cpp',
803 | 'JavaScriptCore/runtime/SymbolTable.cpp',
804 | 'JavaScriptCore/runtime/TypedArrayController.cpp',
805 | 'JavaScriptCore/runtime/TypedArrayType.cpp',
806 | 'JavaScriptCore/runtime/TypeLocationCache.cpp',
807 | 'JavaScriptCore/runtime/TypeProfiler.cpp',
808 | 'JavaScriptCore/runtime/TypeProfilerLog.cpp',
809 | 'JavaScriptCore/runtime/TypeSet.cpp',
810 | 'JavaScriptCore/runtime/VM.cpp',
811 | 'JavaScriptCore/runtime/VMEntryScope.cpp',
812 | 'JavaScriptCore/runtime/Watchdog.cpp',
813 | 'JavaScriptCore/runtime/WatchdogNone.cpp',
814 | 'JavaScriptCore/runtime/WeakMapConstructor.cpp',
815 | 'JavaScriptCore/runtime/WeakMapData.cpp',
816 | 'JavaScriptCore/runtime/WeakMapPrototype.cpp',
817 | 'JavaScriptCore/testRegExp.cpp',
818 | 'JavaScriptCore/tools/CodeProfile.cpp',
819 | 'JavaScriptCore/tools/CodeProfiling.cpp',
820 | 'JavaScriptCore/yarr/RegularExpression.cpp',
821 | 'JavaScriptCore/yarr/YarrCanonicalizeUCS2.cpp',
822 | 'JavaScriptCore/yarr/YarrInterpreter.cpp',
823 | 'JavaScriptCore/yarr/YarrJIT.cpp',
824 | 'JavaScriptCore/yarr/YarrPattern.cpp',
825 | 'JavaScriptCore/yarr/YarrSyntaxChecker.cpp',
826 | ]
827 |
828 | genrule(
829 | name = 'regex_tables',
830 | out = 'RegExpJitTables.h',
831 | srcs = [
832 | 'JavaScriptCore/create_regex_tables',
833 | ],
834 | cmd = 'python JavaScriptCore/create_regex_tables > $OUT',
835 | )
836 | JSC_HEADERS['RegExpJitTables.h'] = ':regex_tables'
837 |
838 | genrule(
839 | name = 'keyword_lookup',
840 | out = 'KeywordLookup.h',
841 | srcs = [
842 | 'JavaScriptCore/KeywordLookupGenerator.py',
843 | 'JavaScriptCore/parser/Keywords.table',
844 | ],
845 | cmd = 'python JavaScriptCore/KeywordLookupGenerator.py JavaScriptCore/parser/Keywords.table > $OUT',
846 | )
847 | JSC_HEADERS['KeywordLookup.h'] = ':keyword_lookup'
848 |
849 | genrule(
850 | name = 'create_hash_table',
851 | out = 'Lexer.lut.h',
852 | srcs = [
853 | 'JavaScriptCore/create_hash_table',
854 | 'JavaScriptCore/parser/Keywords.table',
855 | ],
856 | cmd = 'perl JavaScriptCore/create_hash_table JavaScriptCore/parser/Keywords.table -i > $OUT',
857 | )
858 | JSC_HEADERS['Lexer.lut.h'] = ':create_hash_table'
859 |
860 |
861 | def to_lut_header(src):
862 | root, _ = os.path.splitext(src)
863 | return root + '.lut.h'
864 |
865 |
866 | LUT_SOURCES = [
867 | 'ArrayConstructor.cpp',
868 | 'ArrayPrototype.cpp',
869 | 'BooleanPrototype.cpp',
870 | 'DateConstructor.cpp',
871 | 'DatePrototype.cpp',
872 | 'ErrorPrototype.cpp',
873 | 'JSDataViewPrototype.cpp',
874 | 'JSGlobalObject.cpp',
875 | 'JSONObject.cpp',
876 | 'MathObject.cpp',
877 | 'NamePrototype.cpp',
878 | 'NumberConstructor.cpp',
879 | 'NumberPrototype.cpp',
880 | 'ObjectConstructor.cpp',
881 | 'RegExpConstructor.cpp',
882 | 'RegExpObject.cpp',
883 | 'RegExpPrototype.cpp',
884 | 'StringConstructor.cpp',
885 | ]
886 |
887 | for src in LUT_SOURCES:
888 | lut_header = to_lut_header(src)
889 | genrule(
890 | name = lut_header,
891 | out = lut_header,
892 | srcs = [
893 | 'JavaScriptCore/create_hash_table',
894 | 'JavaScriptCore/runtime/' + src,
895 | ],
896 | cmd = 'perl $SRCDIR/JavaScriptCore/create_hash_table $SRCDIR/JavaScriptCore/runtime/{0} -i > $OUT'.format(src),
897 | )
898 | JSC_HEADERS[lut_header] = ':' + lut_header
899 |
900 |
901 | genrule(
902 | name = 'Bytecodes.h',
903 | out = 'Bytecodes.h',
904 | srcs = [
905 | 'JavaScriptCore/generate-bytecode-files',
906 | 'JavaScriptCore/bytecode/BytecodeList.json',
907 | ],
908 | cmd = ' '.join([
909 | 'python',
910 | '$SRCDIR/JavaScriptCore/generate-bytecode-files',
911 | '--bytecodes_h', '$OUT',
912 | '$SRCDIR/JavaScriptCore/bytecode/BytecodeList.json',
913 | ]),
914 | )
915 | JSC_HEADERS['Bytecodes.h'] = ':Bytecodes.h'
916 |
917 | genrule(
918 | name = 'InitBytecodes.asm',
919 | out = 'InitBytecodes.asm',
920 | srcs = [
921 | 'JavaScriptCore/generate-bytecode-files',
922 | 'JavaScriptCore/bytecode/BytecodeList.json',
923 | ],
924 | cmd = ' '.join([
925 | 'python',
926 | '$SRCDIR/JavaScriptCore/generate-bytecode-files',
927 | '--init_bytecodes_asm', '$OUT',
928 | '$SRCDIR/JavaScriptCore/bytecode/BytecodeList.json',
929 | ]),
930 | )
931 |
932 | SOURCES = glob([
933 | 'JavaScriptCore/offlineasm/*.rb',
934 | 'JavaScriptCore/llint/*.rb',
935 | 'JavaScriptCore/llint/*.asm',
936 | 'JavaScriptCore/*.asm',
937 | ])
938 | SOURCES.append(':InitBytecodes.asm')
939 | for platform in ('android-armv7', 'android-x86'):
940 | source = 'LLIntAssembly.{0}.h'.format(platform)
941 | genrule(
942 | name = source,
943 | out = source,
944 | srcs = SOURCES,
945 | cmd = ' '.join([
946 | 'ruby',
947 | 'JavaScriptCore/offlineasm/asm.rb',
948 | '-IJavaScriptCore',
949 | '-I.',
950 | 'JavaScriptCore/llint/LowLevelInterpreter.asm',
951 | '$(location :jscoffsetextractor#static,{0})'.format(platform),
952 | '$OUT',
953 | ]),
954 | )
955 | add_gen_source(source)
956 |
957 | ###### INSPECTOR SOURCES ######
958 |
959 | INSPECTOR_SCRIPT = 'JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py'
960 | INSPECTOR_DOMAINS = [
961 | 'JavaScriptCore/inspector/protocol/Console.json',
962 | 'JavaScriptCore/inspector/protocol/Debugger.json',
963 | 'JavaScriptCore/inspector/protocol/GenericTypes.json',
964 | 'JavaScriptCore/inspector/protocol/InspectorDomain.json',
965 | 'JavaScriptCore/inspector/protocol/Runtime.json',
966 | ]
967 | genrule(
968 | name = 'InspectorJS.json',
969 | out = 'InspectorJS.json',
970 | srcs = [INSPECTOR_SCRIPT] + INSPECTOR_DOMAINS,
971 | cmd =
972 | '$SRCDIR/{script} {sources} > $OUT'
973 | .format(script=INSPECTOR_SCRIPT, sources=' '.join(INSPECTOR_DOMAINS)),
974 | )
975 |
976 | # Run the script to generate all the inspector C/C++ sources and pack them into
977 | # a zip file.
978 | SCRIPT = 'JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py'
979 | INSPECTOR_GENERATOR_SCRIPTS = [
980 | 'JavaScriptCore/inspector/scripts/codegen/__init__.py',
981 | 'JavaScriptCore/inspector/scripts/codegen/generate_backend_commands.py',
982 | 'JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py',
983 | 'JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py',
984 | 'JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_header.py',
985 | 'JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py',
986 | 'JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py',
987 | 'JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_implementation.py',
988 | 'JavaScriptCore/inspector/scripts/codegen/generator_templates.py',
989 | 'JavaScriptCore/inspector/scripts/codegen/generator.py',
990 | 'JavaScriptCore/inspector/scripts/codegen/models.py',
991 | 'JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py',
992 | 'JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py',
993 | ]
994 | genrule(
995 | name = 'inspector_sources',
996 | out = 'inspector_sources.zip',
997 | srcs = [SCRIPT] + INSPECTOR_GENERATOR_SCRIPTS,
998 | cmd = SCRIPT + ' --framework JavaScriptCore --outputDir $TMP $(location :InspectorJS.json) && (cd $TMP && zip -r -0 $OUT *.cpp *.h)',
999 | )
1000 |
1001 | # Now unpack the source we care about via independent genrules so we
1002 | # can plug them into our sources and headers list.
1003 | INSPECTOR_SOURCES = [
1004 | 'InspectorJSBackendDispatchers.cpp',
1005 | 'InspectorJSFrontendDispatchers.cpp',
1006 | 'InspectorJSProtocolTypes.cpp',
1007 | 'InspectorJSBackendDispatchers.h',
1008 | 'InspectorJSFrontendDispatchers.h',
1009 | 'InspectorJSProtocolTypes.h',
1010 | ]
1011 |
1012 | for source in INSPECTOR_SOURCES:
1013 | unpack_rule(source, ':inspector_sources')
1014 | add_gen_source(source)
1015 |
1016 | genrule(
1017 | name = 'InjectedScriptSource.h',
1018 | out = 'InjectedScriptSource.h',
1019 | srcs = [
1020 | 'JavaScriptCore/inspector/scripts/jsmin.py',
1021 | 'JavaScriptCore/inspector/InjectedScriptSource.js',
1022 | 'JavaScriptCore/inspector/scripts/xxd.pl',
1023 | ],
1024 | cmd = ' && '.join([
1025 | 'echo "//# sourceURL=__WebInspectorInjectedScript__" > $TMP/InjectedScriptSource.min.js',
1026 | 'python JavaScriptCore/inspector/scripts/jsmin.py < JavaScriptCore/inspector/InjectedScriptSource.js >> $TMP/InjectedScriptSource.min.js',
1027 | 'perl JavaScriptCore/inspector/scripts/xxd.pl InjectedScriptSource_js $TMP/InjectedScriptSource.min.js $OUT',
1028 | ]),
1029 | )
1030 | add_gen_source('InjectedScriptSource.h')
1031 |
1032 | ###### END INSPECTOR SOURCES ######
1033 |
1034 | ###### JSC Builtins ######
1035 |
1036 | SCRIPT = 'JavaScriptCore/generate-js-builtins'
1037 | SOURCES = glob(['JavaScriptCore/builtins/*.js'])
1038 | genrule(
1039 | name = 'JSCBuiltins',
1040 | out = 'JSCBuiltins.zip',
1041 | srcs = [SCRIPT] + SOURCES,
1042 | cmd =
1043 | 'python {script} {sources} $TMP/JSCBuiltins.h && (cd $TMP && zip -r -0 $OUT *.h *.cpp)'
1044 | .format(script=SCRIPT, sources=' '.join(SOURCES)),
1045 | )
1046 |
1047 | BUILTINS_SOURCES = [
1048 | 'JSCBuiltins.h',
1049 | 'JSCBuiltins.cpp',
1050 | ]
1051 | for source in BUILTINS_SOURCES:
1052 | unpack_rule(source, ':JSCBuiltins')
1053 | add_gen_source(source)
1054 |
1055 | ###### END JSC Builtins ######
1056 |
1057 | cxx_library(
1058 | name = 'jsc',
1059 | soname = 'libjsc.so',
1060 | supported_platforms_regex = SUPPORTED_PLATFORMS,
1061 | preprocessor_flags = [
1062 | '-DWTF_USE_EXPORT_MACROS=1',
1063 | '-DBUILDING_JavaScriptCore=1',
1064 | '-DENABLE_JIT=1',
1065 | '-DENABLE_DFG_JIT=0',
1066 | '-DENABLE_LLINT=1',
1067 | '-DINTPTR_MAX=LONG_MAX',
1068 | '-DLOG_TAG="JavaScriptCore"',
1069 | ],
1070 | compiler_flags = [
1071 | '-fvisibility=hidden',
1072 | ],
1073 | header_namespace = '',
1074 | exported_headers = JSC_HEADERS,
1075 | headers = subdir_glob([
1076 | ('extra_headers', '*.h'),
1077 | ('extra_headers', 'unicode/udat.h'),
1078 | ]),
1079 | srcs = JSC_SOURCES,
1080 | deps = [
1081 | ':wtf',
1082 | ':wtfcollation',
1083 | '//icu:common',
1084 | '//icu:i18n',
1085 | ],
1086 | visibility = [
1087 | 'PUBLIC',
1088 | ],
1089 | )
1090 |
1091 | # JSC offset extractor: this extracts the offsets into various JSC internal
1092 | # structures that are then fed back into the low level interpreter
1093 |
1094 | JSCOFFSETEXTRACTOR_HEADERS = {}
1095 | JSCOFFSETEXTRACTOR_HEADERS['LLIntDesiredOffsets.h'] = ':llint_desired_offsets'
1096 | JSCOFFSETEXTRACTOR_HEADERS['Bytecodes.h'] = ':Bytecodes.h'
1097 | JSCOFFSETEXTRACTOR_HEADERS.update(
1098 | subdir_glob([
1099 | ('JavaScriptCore', '*.h'),
1100 | ('JavaScriptCore/API', '*.h'),
1101 | ('', 'JavaScriptCore/API/*.h'),
1102 | ('JavaScriptCore/assembler', '*.h'),
1103 | ('JavaScriptCore/bindings', '*.h'),
1104 | ('JavaScriptCore/builtins', '*.h'),
1105 | ('JavaScriptCore/bytecode', '*.h'),
1106 | ('JavaScriptCore/bytecompiler', '*.h'),
1107 | ('JavaScriptCore/debugger', '*.h'),
1108 | ('JavaScriptCore/disassembler', '*.h'),
1109 | ('JavaScriptCore/dfg', '*.h'),
1110 | ('JavaScriptCore/ForwardingHeaders', '**/*.h'),
1111 | ('JavaScriptCore/ftl', '*.h'),
1112 | ('JavaScriptCore/heap', '*.h'),
1113 | ('JavaScriptCore/interpreter', '*.h'),
1114 | ('JavaScriptCore/inspector', '*.h'),
1115 | ('JavaScriptCore/inspector/agents', '*.h'),
1116 | ('JavaScriptCore/llint', '*.h'),
1117 | ('JavaScriptCore/jit', '*.h'),
1118 | ('JavaScriptCore/parser', '*.h'),
1119 | ('JavaScriptCore/profiler', '*.h'),
1120 | ('JavaScriptCore/runtime', '*.h'),
1121 | ('JavaScriptCore/tools', '*.h'),
1122 | ('JavaScriptCore', 'yarr/*.h'),
1123 | ]),
1124 | )
1125 |
1126 | cxx_library(
1127 | name = 'jscoffsetextractor',
1128 | soname = 'libjscoffsetextractor.so',
1129 | force_static = True,
1130 | supported_platforms_regex = SUPPORTED_PLATFORMS,
1131 | preprocessor_flags = [
1132 | '-DENABLE_JIT=1',
1133 | '-DENABLE_DFG_JIT=0',
1134 | '-DENABLE_LLINT=1',
1135 | ],
1136 | headers = JSCOFFSETEXTRACTOR_HEADERS,
1137 | header_namespace = '',
1138 | srcs = [
1139 | 'JavaScriptCore/llint/LLIntOffsetsExtractor.cpp',
1140 | ],
1141 | deps = [
1142 | ':wtf',
1143 | ],
1144 | )
1145 |
1146 |
--------------------------------------------------------------------------------
/jsc/extra_headers/LLIntAssembly.h:
--------------------------------------------------------------------------------
1 | // Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | #if defined(__ANDROID__) && defined(__ARM_ARCH_7A__)
4 | #include "LLIntAssembly.android-armv7.h"
5 | #elif defined(__ANDROID__) && defined(__i386__)
6 | #include "LLIntAssembly.android-x86.h"
7 | #else
8 | #error "Platform not supported"
9 | #endif
10 |
--------------------------------------------------------------------------------
/jsc/extra_headers/collation_hack.h:
--------------------------------------------------------------------------------
1 | // Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | #ifndef COLLACTION_HACK_H
4 | #define COLLACTION_HACK_H 1
5 |
6 | // This extra header file allow CollatorDefault.cpp to compile with
7 | // UCONFIG_NO_COLLATION flag enabled. We need to enable that flag because
8 | // otherwise we'd need to include ICU library in our builds.
9 | // It turns out that since no-one is using this flag to test WebKit builds
10 | // the CollatorDefault.cpp won't compile because of the following issues:
11 | // 1) Definition of StringView is missing
12 | // 2) methods of Collator class it defines are declared static in a header file,
13 | // therefore the "const" modifier for those methods is illegal
14 | //
15 | // This file will be included with -include preprocessor option for compiling
16 | // ColloratorDefault.cpp, thus we can apply some hacks here to workaround the
17 | // issues mentioned above:
18 | // 1) We include StringView.h header
19 | // 2) We redefine "const" to empty string. The issue here is that because of
20 | // that "const char*" will be renamed to "char*". Therefore we also define
21 | // "char" to be replaced by "ConstChar" type that is a typedef of a
22 | // "const char*" but it's typedef definition comes before #define statement
23 | // for "const". Moreover to avoid #define statement to apply for the header
24 | // files that CollatorDefault.cpp is including we first include all the files
25 | // that are required there, so that when the #include statement is hit in
26 | // ColloratorDefault.cpp those are already included and preprocessor won't
27 | // process them again and won't replace "const" tokens they may contain
28 |
29 | #include "WTF/config.h"
30 | #include
31 | #include
32 |
33 | typedef const char ConstChar;
34 | #define const
35 | #define char ConstChar
36 |
37 | #endif /* COLLACTION_HACK_H */
38 |
--------------------------------------------------------------------------------
/jsc/extra_headers/langinfo.h:
--------------------------------------------------------------------------------
1 | // Copyright 2004-present Facebook. All Rights Reserved.
2 |
3 | #ifndef FAKE_LANGINFO_H
4 | #define FAKE_LANGINFO_H 1
5 |
6 | // This is a fake implementation of that disables HAVE_LANGINFO_H variable
7 | // soo that DatePrototype.cpp can compile without errors
8 | // langinfo.h is not included by other files in JSC except for DatePrototype.cpp
9 |
10 | #undef HAVE_LANGINFO_H
11 |
12 | #endif /* langinfo.h */
13 |
--------------------------------------------------------------------------------