summaryrefslogtreecommitdiffstats
path: root/js/src/frontend/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/frontend/moz.build')
-rw-r--r--js/src/frontend/moz.build98
1 files changed, 98 insertions, 0 deletions
diff --git a/js/src/frontend/moz.build b/js/src/frontend/moz.build
new file mode 100644
index 0000000000..0a820086a5
--- /dev/null
+++ b/js/src/frontend/moz.build
@@ -0,0 +1,98 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+FINAL_LIBRARY = "js"
+
+# Includes should be relative to parent path
+LOCAL_INCLUDES += ["!..", ".."]
+
+include("../js-config.mozbuild")
+include("../js-cxxflags.mozbuild")
+
+
+# Generate frontend/ReservedWordsGenerated.h from frontend/ReservedWords.h
+if CONFIG["ENABLE_DECORATORS"]:
+ GeneratedFile(
+ "ReservedWordsGenerated.h",
+ script="GenerateReservedWords.py",
+ inputs=["ReservedWords.h"],
+ flags=["--enable-decorators"],
+ )
+else:
+ GeneratedFile(
+ "ReservedWordsGenerated.h",
+ script="GenerateReservedWords.py",
+ inputs=["ReservedWords.h"],
+ )
+
+if CONFIG["JS_ENABLE_SMOOSH"]:
+ CbindgenHeader("smoosh_generated.h", inputs=["/js/src/frontend/smoosh"])
+
+UNIFIED_SOURCES += [
+ "AbstractScopePtr.cpp",
+ "AsyncEmitter.cpp",
+ "BytecodeCompiler.cpp",
+ "BytecodeControlStructures.cpp",
+ "BytecodeEmitter.cpp",
+ "BytecodeSection.cpp",
+ "CallOrNewEmitter.cpp",
+ "CForEmitter.cpp",
+ "CompileScript.cpp",
+ "DefaultEmitter.cpp",
+ "DoWhileEmitter.cpp",
+ "ElemOpEmitter.cpp",
+ "EmitterScope.cpp",
+ "ExpressionStatementEmitter.cpp",
+ "FoldConstants.cpp",
+ "ForInEmitter.cpp",
+ "ForOfEmitter.cpp",
+ "ForOfLoopControl.cpp",
+ "FrontendContext.cpp",
+ "FunctionEmitter.cpp",
+ "IfEmitter.cpp",
+ "JumpList.cpp",
+ "LabelEmitter.cpp",
+ "LexicalScopeEmitter.cpp",
+ "NameFunctions.cpp",
+ "NameOpEmitter.cpp",
+ "ObjectEmitter.cpp",
+ "ObjLiteral.cpp",
+ "OptionalEmitter.cpp",
+ "ParseContext.cpp",
+ "ParseNode.cpp",
+ "ParseNodeVerify.cpp",
+ "ParserAtom.cpp",
+ "PrivateOpEmitter.cpp",
+ "PropOpEmitter.cpp",
+ "SharedContext.cpp",
+ "SourceNotes.cpp",
+ "Stencil.cpp",
+ "StencilXdr.cpp",
+ "SwitchEmitter.cpp",
+ "TDZCheckCache.cpp",
+ "TokenStream.cpp",
+ "TryEmitter.cpp",
+ "WhileEmitter.cpp",
+]
+
+if CONFIG["JS_ENABLE_SMOOSH"]:
+ UNIFIED_SOURCES += [
+ "Frontend2.cpp",
+ ]
+
+if CONFIG["ENABLE_DECORATORS"]:
+ UNIFIED_SOURCES += [
+ "DecoratorEmitter.cpp",
+ ]
+
+# Parser.cpp cannot be built in unified mode because of explicit
+# template instantiations.
+SOURCES += [
+ "Parser.cpp",
+]
+
+if CONFIG["FUZZING_INTERFACES"] and CONFIG["LIBFUZZER"]:
+ include("/tools/fuzzing/libfuzzer-config.mozbuild")