summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2020-11-04 18:55:02 -0500
committerMatt A. Tobin <email@mattatobin.com>2020-11-04 18:55:02 -0500
commit2e07199197e94ed02926c77bd3bd10d187b352b0 (patch)
treefa7f44e70b8dc15a508ab40875e9ccd9f9bec1b9 /js
parentbb4e9ad1c8a13232904079c28d03b5d69cd39c35 (diff)
parentd2b6975eb7593a9aece06e880fdd2a18e7005e41 (diff)
downloadUXP-2e07199197e94ed02926c77bd3bd10d187b352b0.tar
UXP-2e07199197e94ed02926c77bd3bd10d187b352b0.tar.gz
UXP-2e07199197e94ed02926c77bd3bd10d187b352b0.tar.lz
UXP-2e07199197e94ed02926c77bd3bd10d187b352b0.tar.xz
UXP-2e07199197e94ed02926c77bd3bd10d187b352b0.zip
Merge branch 'jsbuild-work'
Diffstat (limited to 'js')
-rw-r--r--js/src/builtin/moz.build73
-rw-r--r--js/src/ctypes/moz.build26
-rw-r--r--js/src/devtools/moz.build25
-rw-r--r--js/src/ds/moz.build17
-rw-r--r--js/src/editline/moz.build2
-rw-r--r--js/src/frontend/moz.build27
-rw-r--r--js/src/gc/moz.build31
-rw-r--r--js/src/gdb/moz.build9
-rw-r--r--js/src/irregexp/moz.build23
-rw-r--r--js/src/jit/moz.build233
-rw-r--r--js/src/js-config.mozbuild32
-rw-r--r--js/src/js-cxxflags.mozbuild42
-rw-r--r--js/src/js-testing.mozbuild48
-rw-r--r--js/src/jsapi-tests/moz.build9
-rw-r--r--js/src/moz.build596
-rw-r--r--js/src/perf/moz.build29
-rw-r--r--js/src/proxy/moz.build23
-rw-r--r--js/src/shell/moz.build11
-rw-r--r--js/src/threading/moz.build30
-rw-r--r--js/src/vm/SelfHosting.cpp2
-rw-r--r--js/src/vtune/moz.build14
-rw-r--r--js/src/wasm/moz.build39
22 files changed, 770 insertions, 571 deletions
diff --git a/js/src/builtin/moz.build b/js/src/builtin/moz.build
new file mode 100644
index 000000000..ebf9318db
--- /dev/null
+++ b/js/src/builtin/moz.build
@@ -0,0 +1,73 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'AtomicsObject.cpp',
+ 'Eval.cpp',
+ 'Intl.cpp',
+ 'MapObject.cpp',
+ 'ModuleObject.cpp',
+ 'Object.cpp',
+ 'Profilers.cpp',
+ 'Promise.cpp',
+ 'Reflect.cpp',
+ 'ReflectParse.cpp',
+ 'RegExp.cpp',
+ 'SIMD.cpp',
+ 'SymbolObject.cpp',
+ 'TestingFunctions.cpp',
+ 'TypedObject.cpp',
+ 'WeakMapObject.cpp',
+ 'WeakSetObject.cpp',
+]
+
+if CONFIG['_MSC_VER']:
+ if CONFIG['CPU_ARCH'] == 'x86':
+ SOURCES['RegExp.cpp'].no_pgo = True # Bug 772303
+
+# Prepare self-hosted JS code for embedding
+GENERATED_FILES += [('selfhosted.out.h', 'selfhosted.js')]
+selfhosted = GENERATED_FILES[('selfhosted.out.h', 'selfhosted.js')]
+selfhosted.script = 'embedjs.py:generate_selfhosted'
+selfhosted.inputs = [
+ '../js.msg',
+ 'TypedObjectConstants.h',
+ 'SelfHostingDefines.h',
+ 'Utilities.js',
+ 'Array.js',
+ 'AsyncIteration.js',
+ 'Classes.js',
+ 'Date.js',
+ 'Error.js',
+ 'Function.js',
+ 'Generator.js',
+ 'Intl.js',
+ 'IntlData.js',
+ 'Iterator.js',
+ 'Map.js',
+ 'Module.js',
+ 'Number.js',
+ 'Object.js',
+ 'Promise.js',
+ 'Reflect.js',
+ 'RegExp.js',
+ 'RegExpGlobalReplaceOpt.h.js',
+ 'RegExpLocalReplaceOpt.h.js',
+ 'String.js',
+ 'Set.js',
+ 'Sorting.js',
+ 'TypedArray.js',
+ 'TypedObject.js',
+ 'WeakMap.js',
+ 'WeakSet.js',
+]
diff --git a/js/src/ctypes/moz.build b/js/src/ctypes/moz.build
new file mode 100644
index 000000000..5bea399f3
--- /dev/null
+++ b/js/src/ctypes/moz.build
@@ -0,0 +1,26 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'CTypes.cpp',
+ 'Library.cpp',
+]
+
+if not CONFIG['MOZ_SYSTEM_FFI']:
+ LOCAL_INCLUDES += [
+ '!libffi/include',
+ 'libffi/src/%s' % CONFIG['FFI_TARGET_DIR'],
+ ]
+
+if CONFIG['_MSC_VER'] and CONFIG['CPU_ARCH'] == 'x86_64':
+ SOURCES['CTypes.cpp'].no_pgo = True # Bug 810661 \ No newline at end of file
diff --git a/js/src/devtools/moz.build b/js/src/devtools/moz.build
new file mode 100644
index 000000000..cb2fc3256
--- /dev/null
+++ b/js/src/devtools/moz.build
@@ -0,0 +1,25 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+CONFIGURE_SUBST_FILES += [
+ 'rootAnalysis/Makefile',
+]
+
+SOURCES += [
+ 'sharkctl.cpp',
+]
+
+if CONFIG['MOZ_INSTRUMENTS']:
+ SOURCES += [
+ 'Instruments.cpp',
+ ]
diff --git a/js/src/ds/moz.build b/js/src/ds/moz.build
new file mode 100644
index 000000000..a0b869706
--- /dev/null
+++ b/js/src/ds/moz.build
@@ -0,0 +1,17 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'LifoAlloc.cpp',
+ 'MemoryProtectionExceptionHandler.cpp',
+] \ No newline at end of file
diff --git a/js/src/editline/moz.build b/js/src/editline/moz.build
index 420c98df2..1213854c1 100644
--- a/js/src/editline/moz.build
+++ b/js/src/editline/moz.build
@@ -5,7 +5,7 @@
Library('editline')
-UNIFIED_SOURCES += [
+SOURCES += [
'editline.c',
'sysunix.c',
]
diff --git a/js/src/frontend/moz.build b/js/src/frontend/moz.build
new file mode 100644
index 000000000..55037dd5a
--- /dev/null
+++ b/js/src/frontend/moz.build
@@ -0,0 +1,27 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'BytecodeCompiler.cpp',
+ 'BytecodeEmitter.cpp',
+ 'FoldConstants.cpp',
+ 'NameFunctions.cpp',
+ 'ParseNode.cpp',
+ 'Parser.cpp',
+ 'TokenStream.cpp',
+]
+
+GENERATED_FILES += ['ReservedWordsGenerated.h']
+ReservedWordsGenerated = GENERATED_FILES['ReservedWordsGenerated.h']
+ReservedWordsGenerated.script = 'GenerateReservedWords.py'
+ReservedWordsGenerated.inputs += ['ReservedWords.h'] \ No newline at end of file
diff --git a/js/src/gc/moz.build b/js/src/gc/moz.build
new file mode 100644
index 000000000..d33dfb007
--- /dev/null
+++ b/js/src/gc/moz.build
@@ -0,0 +1,31 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'Allocator.cpp',
+ 'Barrier.cpp',
+ 'GCTrace.cpp',
+ 'Iteration.cpp',
+ 'Marking.cpp',
+ 'Memory.cpp',
+ 'MemoryProfiler.cpp',
+ 'Nursery.cpp',
+ 'RootMarking.cpp',
+ 'Statistics.cpp',
+ 'StoreBuffer.cpp',
+ 'Tracer.cpp',
+ 'Zone.cpp',
+]
+
+if CONFIG['MOZ_DEBUG']:
+ SOURCES += ['Verifier.cpp']
diff --git a/js/src/gdb/moz.build b/js/src/gdb/moz.build
index a2e935624..01f6cb0b6 100644
--- a/js/src/gdb/moz.build
+++ b/js/src/gdb/moz.build
@@ -5,6 +5,8 @@
GeckoProgram('gdb-tests', linkage=None)
+include('../js-cxxflags.mozbuild')
+
UNIFIED_SOURCES += [
'gdb-tests.cpp',
'tests/test-asmjs.cpp',
@@ -40,13 +42,6 @@ if CONFIG['MOZ_ICU_DATA_ARCHIVE']:
OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
-if CONFIG['GNU_CXX']:
- CXXFLAGS += ['-Wno-shadow', '-fno-strict-aliasing']
-
-# This is intended as a temporary workaround to enable VS2015.
-if CONFIG['_MSC_VER']:
- CXXFLAGS += ['-wd4312']
-
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR
FINAL_TARGET_PP_FILES += ['gdb-tests-gdb.py.in']
OBJDIR_FILES.js.src.gdb += ['!/dist/bin/gdb-tests-gdb.py']
diff --git a/js/src/irregexp/moz.build b/js/src/irregexp/moz.build
new file mode 100644
index 000000000..fc4fe6218
--- /dev/null
+++ b/js/src/irregexp/moz.build
@@ -0,0 +1,23 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'NativeRegExpMacroAssembler.cpp',
+ 'RegExpAST.cpp',
+ 'RegExpCharacters.cpp',
+ 'RegExpEngine.cpp',
+ 'RegExpInterpreter.cpp',
+ 'RegExpMacroAssembler.cpp',
+ 'RegExpParser.cpp',
+ 'RegExpStack.cpp',
+] \ No newline at end of file
diff --git a/js/src/jit/moz.build b/js/src/jit/moz.build
new file mode 100644
index 000000000..0c6c4f3b8
--- /dev/null
+++ b/js/src/jit/moz.build
@@ -0,0 +1,233 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'AliasAnalysis.cpp',
+ 'AliasAnalysisShared.cpp',
+ 'AlignmentMaskAnalysis.cpp',
+ 'BacktrackingAllocator.cpp',
+ 'Bailouts.cpp',
+ 'BaselineBailouts.cpp',
+ 'BaselineCacheIR.cpp',
+ 'BaselineCompiler.cpp',
+ 'BaselineDebugModeOSR.cpp',
+ 'BaselineFrame.cpp',
+ 'BaselineFrameInfo.cpp',
+ 'BaselineIC.cpp',
+ 'BaselineInspector.cpp',
+ 'BaselineJIT.cpp',
+ 'BitSet.cpp',
+ 'BytecodeAnalysis.cpp',
+ 'C1Spewer.cpp',
+ 'CacheIR.cpp',
+ 'CodeGenerator.cpp',
+ 'CompileWrappers.cpp',
+ 'EagerSimdUnbox.cpp',
+ 'EdgeCaseAnalysis.cpp',
+ 'EffectiveAddressAnalysis.cpp',
+ 'ExecutableAllocator.cpp',
+ 'FlowAliasAnalysis.cpp',
+ 'FoldLinearArithConstants.cpp',
+ 'InstructionReordering.cpp',
+ 'Ion.cpp',
+ 'IonAnalysis.cpp',
+ 'IonBuilder.cpp',
+ 'IonCaches.cpp',
+ 'IonOptimizationLevels.cpp',
+ 'JitcodeMap.cpp',
+ 'JitFrames.cpp',
+ 'JitOptions.cpp',
+ 'JitSpewer.cpp',
+ 'JSONSpewer.cpp',
+ 'LICM.cpp',
+ 'Linker.cpp',
+ 'LIR.cpp',
+ 'LoopUnroller.cpp',
+ 'Lowering.cpp',
+ 'MacroAssembler.cpp',
+ 'MCallOptimize.cpp',
+ 'MIR.cpp',
+ 'MIRGraph.cpp',
+ 'MoveResolver.cpp',
+ 'OptimizationTracking.cpp',
+ 'PerfSpewer.cpp',
+ 'ProcessExecutableMemory.cpp',
+ 'RangeAnalysis.cpp',
+ 'Recover.cpp',
+ 'RegisterAllocator.cpp',
+ 'RematerializedFrame.cpp',
+ 'Safepoints.cpp',
+ 'ScalarReplacement.cpp',
+ 'shared/BaselineCompiler-shared.cpp',
+ 'shared/CodeGenerator-shared.cpp',
+ 'shared/Lowering-shared.cpp',
+ 'SharedIC.cpp',
+ 'Sink.cpp',
+ 'Snapshots.cpp',
+ 'StupidAllocator.cpp',
+ 'TypedObjectPrediction.cpp',
+ 'TypePolicy.cpp',
+ 'ValueNumbering.cpp',
+ 'VMFunctions.cpp',
+ 'WasmBCE.cpp',
+]
+
+if CONFIG['MOZ_DEBUG']:
+ SOURCES += ['Disassembler.cpp']
+
+if not CONFIG['ENABLE_ION']:
+ SOURCES += [
+ 'none/Trampoline-none.cpp'
+ ]
+elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']:
+ SOURCES += [
+ 'x86-shared/Architecture-x86-shared.cpp',
+ 'x86-shared/Assembler-x86-shared.cpp',
+ 'x86-shared/AssemblerBuffer-x86-shared.cpp',
+ 'x86-shared/BaselineCompiler-x86-shared.cpp',
+ 'x86-shared/BaselineIC-x86-shared.cpp',
+ 'x86-shared/CodeGenerator-x86-shared.cpp',
+ 'x86-shared/Lowering-x86-shared.cpp',
+ 'x86-shared/MacroAssembler-x86-shared.cpp',
+ 'x86-shared/MoveEmitter-x86-shared.cpp',
+ ]
+ SOURCES += [
+ 'x86-shared/Disassembler-x86-shared.cpp', # using namespace js::jit::X86Encoding;
+ ]
+ if CONFIG['JS_CODEGEN_X64']:
+ SOURCES += [
+ 'x64/Assembler-x64.cpp',
+ 'x64/Bailouts-x64.cpp',
+ 'x64/BaselineCompiler-x64.cpp',
+ 'x64/BaselineIC-x64.cpp',
+ 'x64/CodeGenerator-x64.cpp',
+ 'x64/Lowering-x64.cpp',
+ 'x64/MacroAssembler-x64.cpp',
+ 'x64/SharedIC-x64.cpp',
+ 'x64/Trampoline-x64.cpp',
+ ]
+ else:
+ SOURCES += [
+ 'x86/Assembler-x86.cpp',
+ 'x86/Bailouts-x86.cpp',
+ 'x86/BaselineCompiler-x86.cpp',
+ 'x86/BaselineIC-x86.cpp',
+ 'x86/CodeGenerator-x86.cpp',
+ 'x86/Lowering-x86.cpp',
+ 'x86/MacroAssembler-x86.cpp',
+ 'x86/SharedIC-x86.cpp',
+ 'x86/Trampoline-x86.cpp',
+ ]
+elif CONFIG['JS_CODEGEN_ARM']:
+ SOURCES += [
+ 'arm/Architecture-arm.cpp',
+ 'arm/Assembler-arm.cpp',
+ 'arm/Bailouts-arm.cpp',
+ 'arm/BaselineCompiler-arm.cpp',
+ 'arm/BaselineIC-arm.cpp',
+ 'arm/CodeGenerator-arm.cpp',
+ 'arm/disasm/Constants-arm.cpp',
+ 'arm/disasm/Disasm-arm.cpp',
+ 'arm/Lowering-arm.cpp',
+ 'arm/MacroAssembler-arm.cpp',
+ 'arm/MoveEmitter-arm.cpp',
+ 'arm/SharedIC-arm.cpp',
+ 'arm/Trampoline-arm.cpp',
+ ]
+ if CONFIG['JS_SIMULATOR_ARM']:
+ SOURCES += [
+ 'arm/Simulator-arm.cpp'
+ ]
+ elif CONFIG['OS_ARCH'] == 'Darwin':
+ SOURCES += [
+ 'arm/llvm-compiler-rt/arm/aeabi_idivmod.S',
+ 'arm/llvm-compiler-rt/arm/aeabi_uidivmod.S',
+ ]
+elif CONFIG['JS_CODEGEN_ARM64']:
+ SOURCES += [
+ 'arm64/Architecture-arm64.cpp',
+ 'arm64/Assembler-arm64.cpp',
+ 'arm64/Bailouts-arm64.cpp',
+ 'arm64/BaselineIC-arm64.cpp',
+ 'arm64/CodeGenerator-arm64.cpp',
+ 'arm64/Lowering-arm64.cpp',
+ 'arm64/MacroAssembler-arm64.cpp',
+ 'arm64/MoveEmitter-arm64.cpp',
+ 'arm64/SharedIC-arm64.cpp',
+ 'arm64/Trampoline-arm64.cpp',
+ 'arm64/vixl/Assembler-vixl.cpp',
+ 'arm64/vixl/Cpu-vixl.cpp',
+ 'arm64/vixl/Decoder-vixl.cpp',
+ 'arm64/vixl/Disasm-vixl.cpp',
+ 'arm64/vixl/Instructions-vixl.cpp',
+ 'arm64/vixl/Instrument-vixl.cpp',
+ 'arm64/vixl/MacroAssembler-vixl.cpp',
+ 'arm64/vixl/MozAssembler-vixl.cpp',
+ 'arm64/vixl/MozInstructions-vixl.cpp',
+ 'arm64/vixl/Utils-vixl.cpp'
+ ]
+ if CONFIG['JS_SIMULATOR_ARM64']:
+ SOURCES += [
+ 'arm64/vixl/Debugger-vixl.cpp',
+ 'arm64/vixl/Logic-vixl.cpp',
+ 'arm64/vixl/MozSimulator-vixl.cpp',
+ 'arm64/vixl/Simulator-vixl.cpp'
+ ]
+elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']:
+ SOURCES += [
+ 'mips-shared/Architecture-mips-shared.cpp',
+ 'mips-shared/Assembler-mips-shared.cpp',
+ 'mips-shared/Bailouts-mips-shared.cpp',
+ 'mips-shared/BaselineCompiler-mips-shared.cpp',
+ 'mips-shared/BaselineIC-mips-shared.cpp',
+ 'mips-shared/CodeGenerator-mips-shared.cpp',
+ 'mips-shared/Lowering-mips-shared.cpp',
+ 'mips-shared/MacroAssembler-mips-shared.cpp',
+ 'mips-shared/MoveEmitter-mips-shared.cpp',
+ ]
+ if CONFIG['JS_CODEGEN_MIPS32']:
+ SOURCES += [
+ 'mips32/Architecture-mips32.cpp',
+ 'mips32/Assembler-mips32.cpp',
+ 'mips32/Bailouts-mips32.cpp',
+ 'mips32/BaselineCompiler-mips32.cpp',
+ 'mips32/BaselineIC-mips32.cpp',
+ 'mips32/CodeGenerator-mips32.cpp',
+ 'mips32/Lowering-mips32.cpp',
+ 'mips32/MacroAssembler-mips32.cpp',
+ 'mips32/MoveEmitter-mips32.cpp',
+ 'mips32/SharedIC-mips32.cpp',
+ 'mips32/Trampoline-mips32.cpp',
+ ]
+ if CONFIG['JS_SIMULATOR_MIPS32']:
+ SOURCES += [
+ 'mips32/Simulator-mips32.cpp'
+ ]
+ elif CONFIG['JS_CODEGEN_MIPS64']:
+ SOURCES += [
+ 'mips64/Architecture-mips64.cpp',
+ 'mips64/Assembler-mips64.cpp',
+ 'mips64/Bailouts-mips64.cpp',
+ 'mips64/BaselineCompiler-mips64.cpp',
+ 'mips64/BaselineIC-mips64.cpp',
+ 'mips64/CodeGenerator-mips64.cpp',
+ 'mips64/Lowering-mips64.cpp',
+ 'mips64/MacroAssembler-mips64.cpp',
+ 'mips64/MoveEmitter-mips64.cpp',
+ 'mips64/SharedIC-mips64.cpp',
+ 'mips64/Trampoline-mips64.cpp',
+ ]
+ if CONFIG['JS_SIMULATOR_MIPS64']:
+ SOURCES += [
+ 'mips64/Simulator-mips64.cpp'
+ ]
diff --git a/js/src/js-config.mozbuild b/js/src/js-config.mozbuild
new file mode 100644
index 000000000..82fb4e53e
--- /dev/null
+++ b/js/src/js-config.mozbuild
@@ -0,0 +1,32 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Also set in shell/moz.build
+DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True
+
+DEFINES['EXPORT_JS_API'] = True
+
+if CONFIG['NIGHTLY_BUILD']:
+ DEFINES['ENABLE_BINARYDATA'] = True
+
+if CONFIG['NIGHTLY_BUILD']:
+ DEFINES['ENABLE_SIMD'] = True
+
+if CONFIG['JS_HAS_CTYPES']:
+ DEFINES['JS_HAS_CTYPES'] = True
+ for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
+ DEFINES[var] = '"%s"' % CONFIG[var]
+
+if CONFIG['MOZ_LINKER']:
+ DEFINES['MOZ_LINKER'] = True
+
+if CONFIG['JS_HAS_CTYPES']:
+ if not CONFIG['MOZ_SYSTEM_FFI']:
+ # Windows needs this to be linked with a static library.
+ DEFINES['FFI_BUILDING'] = True
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+ DEFINES['_CRT_RAND_S'] = True
+ DEFINES['NOMINMAX'] = True \ No newline at end of file
diff --git a/js/src/js-cxxflags.mozbuild b/js/src/js-cxxflags.mozbuild
new file mode 100644
index 000000000..3cab923f1
--- /dev/null
+++ b/js/src/js-cxxflags.mozbuild
@@ -0,0 +1,42 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+
+if CONFIG['_MSC_VER']:
+ # Prevent floating point errors caused by VC++ optimizations
+ CFLAGS += ['-fp:precise']
+ CXXFLAGS += ['-fp:precise']
+
+ # C4805 warns mixing bool with other integral types in computation.
+ # But given the conversion from bool is specified, and this is a
+ # pattern widely used in code in js/src, suppress this warning here.
+ CXXFLAGS += ['-wd4805']
+
+ # C4661 ("no suitable definition provided for explicit template
+ # instantiation request") is emitted for all Parser methods that
+ # have a Parser<FullParseHandler> definition but no
+ # Parser<SyntaxParseHandler> definition, see bug 1167030.
+ CXXFLAGS += ['-wd4661', '-we4067', '-we4258', '-we4275']
+ CXXFLAGS += ['-wd4146'] # FIXME: unary minus operator applied to unsigned type (bug 1229189)
+
+ # This is intended as a temporary hack to support building with VS2015.
+ # 'noexcept' used with no exception handling mode specified;
+ # termination on exception is not guaranteed. Specify /EHsc
+ CXXFLAGS += ['-wd4577', '-wd4312']
+
+if CONFIG['GNU_CXX']:
+ # Disable strict-aliasing for GCC, which is enabled by default
+ # starting with version 7.1, see Mozilla bug 1363009.
+ CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
+
+if CONFIG['JS_HAS_CTYPES'] and CONFIG['MOZ_SYSTEM_FFI']:
+ CXXFLAGS += CONFIG['MOZ_FFI_CFLAGS']
+
+if CONFIG['JS_CODEGEN_ARM'] and CONFIG['JS_SIMULATOR_ARM']:
+ # Configuration used only for testing.
+ if CONFIG['OS_ARCH'] == 'Linux' or CONFIG['OS_ARCH'] == 'Darwin':
+ CXXFLAGS += [ '-msse2', '-mfpmath=sse' ] \ No newline at end of file
diff --git a/js/src/js-testing.mozbuild b/js/src/js-testing.mozbuild
new file mode 100644
index 000000000..a880d9831
--- /dev/null
+++ b/js/src/js-testing.mozbuild
@@ -0,0 +1,48 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+component_engine = ('Core', 'JavaScript Engine')
+component_gc = ('Core', 'JavaScript: GC')
+component_intl = ('Core', 'JavaScript: Internationalization API')
+component_jit = ('Core', 'JavaScript Engine: JIT')
+component_stl = ('Core', 'JavaScript: Standard Library')
+
+with Files('../public/**'):
+ BUG_COMPONENT = component_engine
+with Files('*'):
+ BUG_COMPONENT = component_engine
+
+with Files('wasm/**'):
+ BUG_COMPONENT = component_jit
+with Files('builtin/**'):
+ BUG_COMPONENT = component_stl
+with Files('ctypes/**'):
+ BUG_COMPONENT = ('Core', 'js-ctypes')
+with Files('gc/**'):
+ BUG_COMPONENT = component_gc
+with Files('jit/**'):
+ BUG_COMPONENT = component_jit
+
+# File-specific metadata
+for gcfile in ['jsgc*', 'devtools/rootAnalysis', 'devtools/gc-ubench', 'devtools/gctrace']:
+ with Files(gcfile):
+ BUG_COMPONENT = component_gc
+for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h'):
+ with Files('../public/' + header):
+ BUG_COMPONENT = component_gc
+
+for stlfile in ['jsarray.*', 'jsbool*', 'jsdate.*', 'jsnum.*', 'json.*', 'jsstr.*']:
+ with Files(stlfile):
+ BUG_COMPONENT = component_stl
+
+with Files('builtin/Intl*'):
+ BUG_COMPONENT = component_intl
+with Files('builtin/make_intl_data.py'):
+ BUG_COMPONENT = component_intl
+
+with Files('../public/TrackedOptimizationInfo.h'):
+ BUG_COMPONENT = component_jit
+
+TEST_DIRS += ['jsapi-tests', 'tests', 'gdb'] \ No newline at end of file
diff --git a/js/src/jsapi-tests/moz.build b/js/src/jsapi-tests/moz.build
index 378b2ed7f..35bc69b85 100644
--- a/js/src/jsapi-tests/moz.build
+++ b/js/src/jsapi-tests/moz.build
@@ -3,6 +3,8 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+include(../js-cxxflags.mozbuild)
+
GeckoProgram('jsapi-tests', linkage=None)
UNIFIED_SOURCES += [
@@ -142,12 +144,5 @@ USE_LIBS += [
OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
-if CONFIG['GNU_CXX']:
- CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
-
-# This is intended as a temporary workaround to enable VS2015.
-if CONFIG['_MSC_VER']:
- CXXFLAGS += ['-wd4312']
-
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR
OBJDIR_PP_FILES.js.src['jsapi-tests'] += ['jsapi-tests-gdb.py.in']
diff --git a/js/src/moz.build b/js/src/moz.build
index 46a44603e..f9e5233a9 100644
--- a/js/src/moz.build
+++ b/js/src/moz.build
@@ -3,65 +3,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# Directory metadata
-component_engine = ('Core', 'JavaScript Engine')
-component_gc = ('Core', 'JavaScript: GC')
-component_intl = ('Core', 'JavaScript: Internationalization API')
-component_jit = ('Core', 'JavaScript Engine: JIT')
-component_stl = ('Core', 'JavaScript: Standard Library')
-
-FILES_PER_UNIFIED_FILE = 6
-
-with Files('../public/**'):
- BUG_COMPONENT = component_engine
-with Files('*'):
- BUG_COMPONENT = component_engine
-
-with Files('wasm/**'):
- BUG_COMPONENT = component_jit
-with Files('builtin/**'):
- BUG_COMPONENT = component_stl
-with Files('ctypes/**'):
- BUG_COMPONENT = ('Core', 'js-ctypes')
-with Files('gc/**'):
- BUG_COMPONENT = component_gc
-with Files('jit/**'):
- BUG_COMPONENT = component_jit
-
-# File-specific metadata
-for gcfile in ['jsgc*', 'devtools/rootAnalysis', 'devtools/gc-ubench', 'devtools/gctrace']:
- with Files(gcfile):
- BUG_COMPONENT = component_gc
-for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h'):
- with Files('../public/' + header):
- BUG_COMPONENT = component_gc
-
-for stlfile in ['jsarray.*', 'jsbool*', 'jsdate.*', 'jsnum.*', 'json.*', 'jsstr.*']:
- with Files(stlfile):
- BUG_COMPONENT = component_stl
-
-with Files('builtin/Intl*'):
- BUG_COMPONENT = component_intl
-with Files('builtin/make_intl_data.py'):
- BUG_COMPONENT = component_intl
-
-with Files('../public/TrackedOptimizationInfo.h'):
- BUG_COMPONENT = component_jit
-
-
-if CONFIG['JS_BUNDLED_EDITLINE']:
- DIRS += ['editline']
-
-if not CONFIG['JS_DISABLE_SHELL']:
- DIRS += ['shell']
-
-TEST_DIRS += ['jsapi-tests', 'tests', 'gdb']
+include('js-config.mozbuild')
+include('js-cxxflags.mozbuild')
+include('js-testing.mozbuild')
CONFIGURE_SUBST_FILES += [
- 'devtools/rootAnalysis/Makefile',
'js-config',
'js.pc',
]
+
CONFIGURE_DEFINE_FILES += [
'js-confdefs.h',
]
@@ -80,7 +30,6 @@ CONFIGURE_DEFINE_FILES += [
if CONFIG['HAVE_DTRACE']:
GENERATED_FILES += ['javascript-trace.h']
-
EXPORTS += ['!javascript-trace.h']
# Changes to internal header files, used externally, massively slow down
@@ -101,7 +50,6 @@ EXPORTS += [
'jstypes.h',
'jsversion.h',
'jswrapper.h',
- 'perf/jsperf.h',
]
# If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so
@@ -154,133 +102,48 @@ EXPORTS.js += [
'../public/WeakMapPtr.h',
]
-UNIFIED_SOURCES += [
- 'builtin/AtomicsObject.cpp',
- 'builtin/Eval.cpp',
- 'builtin/Intl.cpp',
- 'builtin/MapObject.cpp',
- 'builtin/ModuleObject.cpp',
- 'builtin/Object.cpp',
- 'builtin/Profilers.cpp',
- 'builtin/Promise.cpp',
- 'builtin/Reflect.cpp',
- 'builtin/ReflectParse.cpp',
- 'builtin/SIMD.cpp',
- 'builtin/SymbolObject.cpp',
- 'builtin/TestingFunctions.cpp',
- 'builtin/TypedObject.cpp',
- 'builtin/WeakMapObject.cpp',
- 'builtin/WeakSetObject.cpp',
- 'devtools/sharkctl.cpp',
- 'ds/LifoAlloc.cpp',
- 'ds/MemoryProtectionExceptionHandler.cpp',
- 'frontend/BytecodeCompiler.cpp',
- 'frontend/BytecodeEmitter.cpp',
- 'frontend/FoldConstants.cpp',
- 'frontend/NameFunctions.cpp',
- 'frontend/ParseNode.cpp',
- 'frontend/TokenStream.cpp',
- 'gc/Allocator.cpp',
- 'gc/Barrier.cpp',
- 'gc/GCTrace.cpp',
- 'gc/Iteration.cpp',
- 'gc/Marking.cpp',
- 'gc/Memory.cpp',
- 'gc/MemoryProfiler.cpp',
- 'gc/Nursery.cpp',
- 'gc/RootMarking.cpp',
- 'gc/Statistics.cpp',
- 'gc/Tracer.cpp',
- 'gc/Verifier.cpp',
- 'gc/Zone.cpp',
- 'irregexp/NativeRegExpMacroAssembler.cpp',
- 'irregexp/RegExpAST.cpp',
- 'irregexp/RegExpCharacters.cpp',
- 'irregexp/RegExpEngine.cpp',
- 'irregexp/RegExpInterpreter.cpp',
- 'irregexp/RegExpMacroAssembler.cpp',
- 'irregexp/RegExpParser.cpp',
- 'irregexp/RegExpStack.cpp',
- 'jit/AliasAnalysis.cpp',
- 'jit/AliasAnalysisShared.cpp',
- 'jit/AlignmentMaskAnalysis.cpp',
- 'jit/BacktrackingAllocator.cpp',
- 'jit/Bailouts.cpp',
- 'jit/BaselineBailouts.cpp',
- 'jit/BaselineCacheIR.cpp',
- 'jit/BaselineCompiler.cpp',
- 'jit/BaselineDebugModeOSR.cpp',
- 'jit/BaselineFrame.cpp',
- 'jit/BaselineFrameInfo.cpp',
- 'jit/BaselineIC.cpp',
- 'jit/BaselineInspector.cpp',
- 'jit/BaselineJIT.cpp',
- 'jit/BitSet.cpp',
- 'jit/BytecodeAnalysis.cpp',
- 'jit/C1Spewer.cpp',
- 'jit/CacheIR.cpp',
- 'jit/CodeGenerator.cpp',
- 'jit/CompileWrappers.cpp',
- 'jit/Disassembler.cpp',
- 'jit/EagerSimdUnbox.cpp',
- 'jit/EdgeCaseAnalysis.cpp',
- 'jit/EffectiveAddressAnalysis.cpp',
- 'jit/ExecutableAllocator.cpp',
- 'jit/FlowAliasAnalysis.cpp',
- 'jit/FoldLinearArithConstants.cpp',
- 'jit/InstructionReordering.cpp',
- 'jit/Ion.cpp',
- 'jit/IonAnalysis.cpp',
- 'jit/IonBuilder.cpp',
- 'jit/IonCaches.cpp',
- 'jit/IonOptimizationLevels.cpp',
- 'jit/JitcodeMap.cpp',
- 'jit/JitFrames.cpp',
- 'jit/JitOptions.cpp',
- 'jit/JitSpewer.cpp',
- 'jit/JSONSpewer.cpp',
- 'jit/LICM.cpp',
- 'jit/Linker.cpp',
- 'jit/LIR.cpp',
- 'jit/LoopUnroller.cpp',
- 'jit/Lowering.cpp',
- 'jit/MacroAssembler.cpp',
- 'jit/MCallOptimize.cpp',
- 'jit/MIR.cpp',
- 'jit/MIRGraph.cpp',
- 'jit/MoveResolver.cpp',
- 'jit/OptimizationTracking.cpp',
- 'jit/PerfSpewer.cpp',
- 'jit/ProcessExecutableMemory.cpp',
- 'jit/RangeAnalysis.cpp',
- 'jit/Recover.cpp',
- 'jit/RegisterAllocator.cpp',
- 'jit/RematerializedFrame.cpp',
- 'jit/Safepoints.cpp',
- 'jit/ScalarReplacement.cpp',
- 'jit/shared/BaselineCompiler-shared.cpp',
- 'jit/shared/CodeGenerator-shared.cpp',
- 'jit/shared/Lowering-shared.cpp',
- 'jit/SharedIC.cpp',
- 'jit/Sink.cpp',
- 'jit/Snapshots.cpp',
- 'jit/StupidAllocator.cpp',
- 'jit/TypedObjectPrediction.cpp',
- 'jit/TypePolicy.cpp',
- 'jit/ValueNumbering.cpp',
- 'jit/VMFunctions.cpp',
- 'jit/WasmBCE.cpp',
+DIRS += [
+ 'builtin',
+ 'devtools',
+ 'ds',
+ 'frontend',
+ 'gc',
+ 'irregexp',
+ 'jit',
+ 'perf',
+ 'proxy',
+ 'threading',
+ 'wasm',
+]
+
+if CONFIG['JS_HAS_CTYPES']:
+ DIRS += ['ctypes']
+
+if CONFIG['JS_BUNDLED_EDITLINE']:
+ DIRS += ['editline']
+
+if not CONFIG['JS_DISABLE_SHELL']:
+ DIRS += ['shell']
+
+if CONFIG['MOZ_VTUNE']:
+ DIRS += ['vtune']
+
+SOURCES += [
'jsalloc.cpp',
'jsapi.cpp',
+ 'jsarray.cpp',
+ 'jsatom.cpp',
'jsbool.cpp',
'jscntxt.cpp',
'jscompartment.cpp',
'jsdate.cpp',
+ 'jsdtoa.cpp',
'jsexn.cpp',
'jsfriendapi.cpp',
'jsfun.cpp',
'jsgc.cpp',
'jsiter.cpp',
+ 'jsmath.cpp',
'jsnativestack.cpp',
'jsnum.cpp',
'jsobj.cpp',
@@ -290,17 +153,16 @@ UNIFIED_SOURCES += [
'jspropertytree.cpp',
'jsscript.cpp',
'jsstr.cpp',
+ 'jsutil.cpp',
'jsweakmap.cpp',
- 'perf/jsperf.cpp',
- 'proxy/BaseProxyHandler.cpp',
- 'proxy/CrossCompartmentWrapper.cpp',
- 'proxy/DeadObjectProxy.cpp',
- 'proxy/OpaqueCrossCompartmentWrapper.cpp',
- 'proxy/Proxy.cpp',
- 'proxy/ScriptedProxyHandler.cpp',
- 'proxy/SecurityWrapper.cpp',
- 'proxy/Wrapper.cpp',
- 'threading/Mutex.cpp',
+]
+
+# Suppress warnings in third-party code.
+# We are keeping this in the main moz.build because it is file specific
+if CONFIG['CLANG_CXX'] or CONFIG['GNU_CXX']:
+ SOURCES['jsdtoa.cpp'].flags += ['-Wno-implicit-fallthrough']
+
+SOURCES += [
'vm/ArgumentsObject.cpp',
'vm/ArrayBufferObject.cpp',
'vm/AsyncFunction.cpp',
@@ -320,6 +182,7 @@ UNIFIED_SOURCES += [
'vm/GlobalObject.cpp',
'vm/HelperThreads.cpp',
'vm/Id.cpp',
+ 'vm/Initialization.cpp',
'vm/Interpreter.cpp',
'vm/JSONParser.cpp',
'vm/MemoryMetrics.cpp',
@@ -359,65 +222,11 @@ UNIFIED_SOURCES += [
'vm/Value.cpp',
'vm/WeakMapPtr.cpp',
'vm/Xdr.cpp',
- 'wasm/AsmJS.cpp',
- 'wasm/WasmBaselineCompile.cpp',
- 'wasm/WasmBinaryFormat.cpp',
- 'wasm/WasmBinaryIterator.cpp',
- 'wasm/WasmBinaryToAST.cpp',
- 'wasm/WasmBinaryToExperimentalText.cpp',
- 'wasm/WasmBinaryToText.cpp',
- 'wasm/WasmCode.cpp',
- 'wasm/WasmCompartment.cpp',
- 'wasm/WasmCompile.cpp',
- 'wasm/WasmFrameIterator.cpp',
- 'wasm/WasmGenerator.cpp',
- 'wasm/WasmInstance.cpp',
- 'wasm/WasmIonCompile.cpp',
- 'wasm/WasmJS.cpp',
- 'wasm/WasmModule.cpp',
- 'wasm/WasmSignalHandlers.cpp',
- 'wasm/WasmStubs.cpp',
- 'wasm/WasmTable.cpp',
- 'wasm/WasmTextToBinary.cpp',
- 'wasm/WasmTextUtils.cpp',
- 'wasm/WasmTypes.cpp'
-]
-
-# jsarray.cpp and jsatom.cpp cannot be built in unified mode because
-# xpcshell is broken during packaging when compiled with gcc-4.8.2
-# builtin/RegExp.cpp cannot be built in unified mode because it is built
-# without PGO
-# frontend/Parser.cpp cannot be built in unified mode because of explicit
-# template instantiations.
-# jsdtoa.cpp cannot be built in unified mode because we want to suppress
-# compiler warnings in third-party dtoa.c.
-# jsmath.cpp cannot be built in unified mode because it needs to pull rand_s
-# from <stdlib.h> on Windows through a preprocessor define.
-# jsutil.cpp cannot be built in unified mode because it is needed for
-# check-vanilla-allocations.
-# StoreBuffer.cpp cannot be built in unified because its template
-# instantiations may or may not be needed depending on what it gets bundled
-# with.
-SOURCES += [
- 'builtin/RegExp.cpp',
- 'frontend/Parser.cpp',
- 'gc/StoreBuffer.cpp',
- 'jsarray.cpp',
- 'jsatom.cpp',
- 'jsdtoa.cpp',
- 'jsmath.cpp',
- 'jsutil.cpp',
- 'vm/Initialization.cpp',
]
if CONFIG['JS_POSIX_NSPR']:
- UNIFIED_SOURCES += [
- 'vm/PosixNSPR.cpp',
- ]
-
-if CONFIG['MOZ_INSTRUMENTS']:
SOURCES += [
- 'devtools/Instruments.cpp',
+ 'vm/PosixNSPR.cpp',
]
if CONFIG['ENABLE_TRACE_LOGGING']:
@@ -427,205 +236,6 @@ if CONFIG['ENABLE_TRACE_LOGGING']:
'vm/TraceLoggingTypes.cpp',
]
-if not CONFIG['ENABLE_ION']:
- UNIFIED_SOURCES += [
- 'jit/none/Trampoline-none.cpp'
- ]
-elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']:
- UNIFIED_SOURCES += [
- 'jit/x86-shared/Architecture-x86-shared.cpp',
- 'jit/x86-shared/Assembler-x86-shared.cpp',
- 'jit/x86-shared/AssemblerBuffer-x86-shared.cpp',
- 'jit/x86-shared/BaselineCompiler-x86-shared.cpp',
- 'jit/x86-shared/BaselineIC-x86-shared.cpp',
- 'jit/x86-shared/CodeGenerator-x86-shared.cpp',
- 'jit/x86-shared/Lowering-x86-shared.cpp',
- 'jit/x86-shared/MacroAssembler-x86-shared.cpp',
- 'jit/x86-shared/MoveEmitter-x86-shared.cpp',
- ]
- SOURCES += [
- 'jit/x86-shared/Disassembler-x86-shared.cpp', # using namespace js::jit::X86Encoding;
- ]
- if CONFIG['JS_CODEGEN_X64']:
- UNIFIED_SOURCES += [
- 'jit/x64/Assembler-x64.cpp',
- 'jit/x64/Bailouts-x64.cpp',
- 'jit/x64/BaselineCompiler-x64.cpp',
- 'jit/x64/BaselineIC-x64.cpp',
- 'jit/x64/CodeGenerator-x64.cpp',
- 'jit/x64/Lowering-x64.cpp',
- 'jit/x64/MacroAssembler-x64.cpp',
- 'jit/x64/SharedIC-x64.cpp',
- 'jit/x64/Trampoline-x64.cpp',
- ]
- else:
- UNIFIED_SOURCES += [
- 'jit/x86/Assembler-x86.cpp',
- 'jit/x86/Bailouts-x86.cpp',
- 'jit/x86/BaselineCompiler-x86.cpp',
- 'jit/x86/BaselineIC-x86.cpp',
- 'jit/x86/CodeGenerator-x86.cpp',
- 'jit/x86/Lowering-x86.cpp',
- 'jit/x86/MacroAssembler-x86.cpp',
- 'jit/x86/SharedIC-x86.cpp',
- 'jit/x86/Trampoline-x86.cpp',
- ]
-elif CONFIG['JS_CODEGEN_ARM']:
- UNIFIED_SOURCES += [
- 'jit/arm/Architecture-arm.cpp',
- 'jit/arm/Assembler-arm.cpp',
- 'jit/arm/Bailouts-arm.cpp',
- 'jit/arm/BaselineCompiler-arm.cpp',
- 'jit/arm/BaselineIC-arm.cpp',
- 'jit/arm/CodeGenerator-arm.cpp',
- 'jit/arm/disasm/Constants-arm.cpp',
- 'jit/arm/disasm/Disasm-arm.cpp',
- 'jit/arm/Lowering-arm.cpp',
- 'jit/arm/MacroAssembler-arm.cpp',
- 'jit/arm/MoveEmitter-arm.cpp',
- 'jit/arm/SharedIC-arm.cpp',
- 'jit/arm/Trampoline-arm.cpp',
- ]
- if CONFIG['JS_SIMULATOR_ARM']:
- UNIFIED_SOURCES += [
- 'jit/arm/Simulator-arm.cpp'
- ]
- # Configuration used only for testing.
- if CONFIG['OS_ARCH'] == 'Linux' or CONFIG['OS_ARCH'] == 'Darwin':
- CXXFLAGS += [ '-msse2', '-mfpmath=sse' ]
- elif CONFIG['OS_ARCH'] == 'Darwin':
- SOURCES += [
- 'jit/arm/llvm-compiler-rt/arm/aeabi_idivmod.S',
- 'jit/arm/llvm-compiler-rt/arm/aeabi_uidivmod.S',
- ]
-elif CONFIG['JS_CODEGEN_ARM64']:
- UNIFIED_SOURCES += [
- 'jit/arm64/Architecture-arm64.cpp',
- 'jit/arm64/Assembler-arm64.cpp',
- 'jit/arm64/Bailouts-arm64.cpp',
- 'jit/arm64/BaselineIC-arm64.cpp',
- 'jit/arm64/CodeGenerator-arm64.cpp',
- 'jit/arm64/Lowering-arm64.cpp',
- 'jit/arm64/MacroAssembler-arm64.cpp',
- 'jit/arm64/MoveEmitter-arm64.cpp',
- 'jit/arm64/SharedIC-arm64.cpp',
- 'jit/arm64/Trampoline-arm64.cpp',
- 'jit/arm64/vixl/Assembler-vixl.cpp',
- 'jit/arm64/vixl/Cpu-vixl.cpp',
- 'jit/arm64/vixl/Decoder-vixl.cpp',
- 'jit/arm64/vixl/Disasm-vixl.cpp',
- 'jit/arm64/vixl/Instructions-vixl.cpp',
- 'jit/arm64/vixl/Instrument-vixl.cpp',
- 'jit/arm64/vixl/MacroAssembler-vixl.cpp',
- 'jit/arm64/vixl/MozAssembler-vixl.cpp',
- 'jit/arm64/vixl/MozInstructions-vixl.cpp',
- 'jit/arm64/vixl/Utils-vixl.cpp'
- ]
- if CONFIG['JS_SIMULATOR_ARM64']:
- UNIFIED_SOURCES += [
- 'jit/arm64/vixl/Debugger-vixl.cpp',
- 'jit/arm64/vixl/Logic-vixl.cpp',
- 'jit/arm64/vixl/MozSimulator-vixl.cpp',
- 'jit/arm64/vixl/Simulator-vixl.cpp'
- ]
-elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']:
- UNIFIED_SOURCES += [
- 'jit/mips-shared/Architecture-mips-shared.cpp',
- 'jit/mips-shared/Assembler-mips-shared.cpp',
- 'jit/mips-shared/Bailouts-mips-shared.cpp',
- 'jit/mips-shared/BaselineCompiler-mips-shared.cpp',
- 'jit/mips-shared/BaselineIC-mips-shared.cpp',
- 'jit/mips-shared/CodeGenerator-mips-shared.cpp',
- 'jit/mips-shared/Lowering-mips-shared.cpp',
- 'jit/mips-shared/MacroAssembler-mips-shared.cpp',
- 'jit/mips-shared/MoveEmitter-mips-shared.cpp',
- ]
- if CONFIG['JS_CODEGEN_MIPS32']:
- UNIFIED_SOURCES += [
- 'jit/mips32/Architecture-mips32.cpp',
- 'jit/mips32/Assembler-mips32.cpp',
- 'jit/mips32/Bailouts-mips32.cpp',
- 'jit/mips32/BaselineCompiler-mips32.cpp',
- 'jit/mips32/BaselineIC-mips32.cpp',
- 'jit/mips32/CodeGenerator-mips32.cpp',
- 'jit/mips32/Lowering-mips32.cpp',
- 'jit/mips32/MacroAssembler-mips32.cpp',
- 'jit/mips32/MoveEmitter-mips32.cpp',
- 'jit/mips32/SharedIC-mips32.cpp',
- 'jit/mips32/Trampoline-mips32.cpp',
- ]
- if CONFIG['JS_SIMULATOR_MIPS32']:
- UNIFIED_SOURCES += [
- 'jit/mips32/Simulator-mips32.cpp'
- ]
- elif CONFIG['JS_CODEGEN_MIPS64']:
- UNIFIED_SOURCES += [
- 'jit/mips64/Architecture-mips64.cpp',
- 'jit/mips64/Assembler-mips64.cpp',
- 'jit/mips64/Bailouts-mips64.cpp',
- 'jit/mips64/BaselineCompiler-mips64.cpp',
- 'jit/mips64/BaselineIC-mips64.cpp',
- 'jit/mips64/CodeGenerator-mips64.cpp',
- 'jit/mips64/Lowering-mips64.cpp',
- 'jit/mips64/MacroAssembler-mips64.cpp',
- 'jit/mips64/MoveEmitter-mips64.cpp',
- 'jit/mips64/SharedIC-mips64.cpp',
- 'jit/mips64/Trampoline-mips64.cpp',
- ]
- if CONFIG['JS_SIMULATOR_MIPS64']:
- UNIFIED_SOURCES += [
- 'jit/mips64/Simulator-mips64.cpp'
- ]
-
-if CONFIG['OS_ARCH'] == 'WINNT':
- SOURCES += [
- 'threading/windows/ConditionVariable.cpp',
- 'threading/windows/MutexImpl.cpp',
- 'threading/windows/Thread.cpp',
- ]
- # _CRT_RAND_S must be #defined before #including stdlib.h to get rand_s()
- DEFINES['_CRT_RAND_S'] = True
-else:
- SOURCES += [
- 'threading/posix/ConditionVariable.cpp',
- 'threading/posix/MutexImpl.cpp',
- 'threading/posix/Thread.cpp',
- ]
-
-if CONFIG['JS_HAS_CTYPES']:
- SOURCES += [
- 'ctypes/CTypes.cpp',
- 'ctypes/Library.cpp',
- ]
- if not CONFIG['MOZ_SYSTEM_FFI']:
- LOCAL_INCLUDES += [
- '!ctypes/libffi/include',
- 'ctypes/libffi/src/%s' % CONFIG['FFI_TARGET_DIR'],
- ]
-
-if CONFIG['MOZ_VTUNE']:
- SOURCES += [
- 'vtune/jitprofiling.c'
- ]
-
-if CONFIG['HAVE_LINUX_PERF_EVENT_H']:
- SOURCES += [
- 'perf/pm_linux.cpp'
- ]
- if CONFIG['LINUX_HEADERS_INCLUDES']:
- SOURCES['perf/pm_linux.cpp'].flags += [CONFIG['LINUX_HEADERS_INCLUDES']]
-else:
- SOURCES += [
- 'perf/pm_stub.cpp'
- ]
-
-GENERATED_FILES += ['frontend/ReservedWordsGenerated.h']
-ReservedWordsGenerated = GENERATED_FILES['frontend/ReservedWordsGenerated.h']
-ReservedWordsGenerated.script = 'frontend/GenerateReservedWords.py'
-ReservedWordsGenerated.inputs += [
- 'frontend/ReservedWords.h'
-]
-
# JavaScript must be built shared, even for static builds, as it is used by
# other modules which are always built shared. Failure to do so results in
# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
@@ -661,65 +271,14 @@ USE_LIBS += [
'zlib',
]
-if CONFIG['NIGHTLY_BUILD']:
- DEFINES['ENABLE_BINARYDATA'] = True
-
-if CONFIG['NIGHTLY_BUILD']:
- DEFINES['ENABLE_SIMD'] = True
-
-# Also set in shell/moz.build
-DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True
-
-DEFINES['EXPORT_JS_API'] = True
-
-if CONFIG['JS_HAS_CTYPES']:
- DEFINES['JS_HAS_CTYPES'] = True
- for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
- DEFINES[var] = '"%s"' % CONFIG[var]
-
-if CONFIG['MOZ_LINKER']:
- DEFINES['MOZ_LINKER'] = True
-
-if CONFIG['_MSC_VER']:
- if CONFIG['CPU_ARCH'] == 'x86':
- SOURCES['builtin/RegExp.cpp'].no_pgo = True # Bug 772303
- elif CONFIG['CPU_ARCH'] == 'x86_64' and CONFIG['JS_HAS_CTYPES']:
- SOURCES['ctypes/CTypes.cpp'].no_pgo = True # Bug 810661
- # Prevent floating point errors caused by VC++ optimizations
- CFLAGS += ['-fp:precise']
- CXXFLAGS += ['-fp:precise']
- # C4805 warns mixing bool with other integral types in computation.
- # But given the conversion from bool is specified, and this is a
- # pattern widely used in code in js/src, suppress this warning here.
- CXXFLAGS += ['-wd4805']
- # C4661 ("no suitable definition provided for explicit template
- # instantiation request") is emitted for all Parser methods that
- # have a Parser<FullParseHandler> definition but no
- # Parser<SyntaxParseHandler> definition, see bug 1167030.
- CXXFLAGS += ['-wd4661']
- CXXFLAGS += ['-we4067', '-we4258', '-we4275']
- CXXFLAGS += ['-wd4146'] # FIXME: unary minus operator applied to unsigned type (bug 1229189)
-
- # This is intended as a temporary hack to support building with VS2015.
- # 'noexcept' used with no exception handling mode specified;
- # termination on exception is not guaranteed. Specify /EHsc
- CXXFLAGS += ['-wd4577']
- CXXFLAGS += ['-wd4312']
-
if CONFIG['OS_ARCH'] not in ('WINNT'):
- OS_LIBS += [
- 'm',
- ]
+ OS_LIBS += ['m']
if CONFIG['OS_ARCH'] == 'FreeBSD':
- OS_LIBS += [
- '-pthread',
- ]
+ OS_LIBS += ['-pthread']
if CONFIG['OS_ARCH'] == 'Linux':
- OS_LIBS += [
- 'dl',
- ]
+ OS_LIBS += ['dl']
if CONFIG['OS_ARCH'] == 'SunOS':
OS_LIBS += [
@@ -731,65 +290,8 @@ if CONFIG['OS_ARCH'] == 'SunOS':
OS_LIBS += CONFIG['REALTIME_LIBS']
-CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-
NO_EXPAND_LIBS = True
DIST_INSTALL = True
-# Prepare self-hosted JS code for embedding
-GENERATED_FILES += [('selfhosted.out.h', 'selfhosted.js')]
-selfhosted = GENERATED_FILES[('selfhosted.out.h', 'selfhosted.js')]
-selfhosted.script = 'builtin/embedjs.py:generate_selfhosted'
-selfhosted.inputs = [
- 'js.msg',
- 'builtin/TypedObjectConstants.h',
- 'builtin/SelfHostingDefines.h',
- 'builtin/Utilities.js',
- 'builtin/Array.js',
- 'builtin/AsyncIteration.js',
- 'builtin/Classes.js',
- 'builtin/Date.js',
- 'builtin/Error.js',
- 'builtin/Function.js',
- 'builtin/Generator.js',
- 'builtin/Intl.js',
- 'builtin/IntlData.js',
- 'builtin/Iterator.js',
- 'builtin/Map.js',
- 'builtin/Module.js',
- 'builtin/Number.js',
- 'builtin/Object.js',
- 'builtin/Promise.js',
- 'builtin/Reflect.js',
- 'builtin/RegExp.js',
- 'builtin/RegExpGlobalReplaceOpt.h.js',
- 'builtin/RegExpLocalReplaceOpt.h.js',
- 'builtin/String.js',
- 'builtin/Set.js',
- 'builtin/Sorting.js',
- 'builtin/TypedArray.js',
- 'builtin/TypedObject.js',
- 'builtin/WeakMap.js',
- 'builtin/WeakSet.js'
-]
-
-if CONFIG['JS_HAS_CTYPES']:
- if CONFIG['MOZ_SYSTEM_FFI']:
- CXXFLAGS += CONFIG['MOZ_FFI_CFLAGS']
- else:
- # Windows needs this to be linked with a static library.
- DEFINES['FFI_BUILDING'] = True
-
-if CONFIG['GNU_CXX']:
- # Disable strict-aliasing for GCC, which is enabled by default
- # starting with version 7.1, see Mozilla bug 1363009.
- CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
-
-# Suppress warnings in third-party code.
-if CONFIG['CLANG_CXX'] or CONFIG['GNU_CXX']:
- SOURCES['jsdtoa.cpp'].flags += ['-Wno-implicit-fallthrough']
-if CONFIG['OS_ARCH'] == 'WINNT':
- DEFINES['NOMINMAX'] = True
diff --git a/js/src/perf/moz.build b/js/src/perf/moz.build
new file mode 100644
index 000000000..f0dd7e1d6
--- /dev/null
+++ b/js/src/perf/moz.build
@@ -0,0 +1,29 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+EXPORTS += ['jsperf.h']
+
+SOURCES += [
+ 'jsperf.cpp',
+]
+
+if CONFIG['HAVE_LINUX_PERF_EVENT_H']:
+ SOURCES += [
+ 'pm_linux.cpp'
+ ]
+ if CONFIG['LINUX_HEADERS_INCLUDES']:
+ SOURCES['pm_linux.cpp'].flags += [CONFIG['LINUX_HEADERS_INCLUDES']]
+else:
+ SOURCES += [
+ 'pm_stub.cpp'
+ ] \ No newline at end of file
diff --git a/js/src/proxy/moz.build b/js/src/proxy/moz.build
new file mode 100644
index 000000000..72082df85
--- /dev/null
+++ b/js/src/proxy/moz.build
@@ -0,0 +1,23 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'BaseProxyHandler.cpp',
+ 'CrossCompartmentWrapper.cpp',
+ 'DeadObjectProxy.cpp',
+ 'OpaqueCrossCompartmentWrapper.cpp',
+ 'Proxy.cpp',
+ 'ScriptedProxyHandler.cpp',
+ 'SecurityWrapper.cpp',
+ 'Wrapper.cpp',
+]
diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build
index 4f04be73c..93812da74 100644
--- a/js/src/shell/moz.build
+++ b/js/src/shell/moz.build
@@ -3,13 +3,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+include('../js-cxxflags.mozbuild')
+
if CONFIG['JS_SHELL_NAME']:
GeckoProgram(CONFIG['JS_SHELL_NAME'], linkage=None)
if CONFIG['JS_BUNDLED_EDITLINE']:
USE_LIBS += ['editline']
USE_LIBS += ['static:js']
-UNIFIED_SOURCES += [
+SOURCES += [
'js.cpp',
'jsoptparse.cpp',
'jsshell.cpp',
@@ -49,13 +51,6 @@ shellmoduleloader.inputs = [
'ModuleLoader.js',
]
-if CONFIG['GNU_CXX']:
- CXXFLAGS += ['-Wno-shadow', '-Werror=format']
-
-# This is intended as a temporary workaround to enable VS2015.
-if CONFIG['_MSC_VER']:
- CXXFLAGS += ['-wd4312']
-
# Place a GDB Python auto-load file next to the shell executable, both in
# the build directory and in the dist/bin directory.
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR
diff --git a/js/src/threading/moz.build b/js/src/threading/moz.build
new file mode 100644
index 000000000..97673d0c6
--- /dev/null
+++ b/js/src/threading/moz.build
@@ -0,0 +1,30 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'Mutex.cpp',
+]
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+ SOURCES += [
+ 'windows/ConditionVariable.cpp',
+ 'windows/MutexImpl.cpp',
+ 'windows/Thread.cpp',
+ ]
+ # _CRT_RAND_S must be #defined before #including stdlib.h to get rand_s()
+else:
+ SOURCES += [
+ 'posix/ConditionVariable.cpp',
+ 'posix/MutexImpl.cpp',
+ 'posix/Thread.cpp',
+ ] \ No newline at end of file
diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp
index b7d62efc1..dc1dfb9fa 100644
--- a/js/src/vm/SelfHosting.cpp
+++ b/js/src/vm/SelfHosting.cpp
@@ -20,8 +20,8 @@
#include "jsstr.h"
#include "jsweakmap.h"
#include "jswrapper.h"
-#include "selfhosted.out.h"
+#include "builtin/selfhosted.out.h"
#include "builtin/Intl.h"
#include "builtin/MapObject.h"
#include "builtin/ModuleObject.h"
diff --git a/js/src/vtune/moz.build b/js/src/vtune/moz.build
new file mode 100644
index 000000000..465919795
--- /dev/null
+++ b/js/src/vtune/moz.build
@@ -0,0 +1,14 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += ['jitprofiling.c'] \ No newline at end of file
diff --git a/js/src/wasm/moz.build b/js/src/wasm/moz.build
new file mode 100644
index 000000000..6a47df322
--- /dev/null
+++ b/js/src/wasm/moz.build
@@ -0,0 +1,39 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include('../js-config.mozbuild')
+include('../js-cxxflags.mozbuild')
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+SOURCES += [
+ 'AsmJS.cpp',
+ 'WasmBaselineCompile.cpp',
+ 'WasmBinaryFormat.cpp',
+ 'WasmBinaryToAST.cpp',
+ 'WasmBinaryToExperimentalText.cpp',
+ 'WasmBinaryToText.cpp',
+ 'WasmCode.cpp',
+ 'WasmCompartment.cpp',
+ 'WasmCompile.cpp',
+ 'WasmFrameIterator.cpp',
+ 'WasmGenerator.cpp',
+ 'WasmInstance.cpp',
+ 'WasmIonCompile.cpp',
+ 'WasmJS.cpp',
+ 'WasmModule.cpp',
+ 'WasmSignalHandlers.cpp',
+ 'WasmStubs.cpp',
+ 'WasmTable.cpp',
+ 'WasmTextToBinary.cpp',
+ 'WasmTextUtils.cpp',
+ 'WasmTypes.cpp'
+]
+
+if CONFIG['MOZ_DEBUG']:
+ SOURCES += ['WasmBinaryIterator.cpp'] \ No newline at end of file