js/src/frontend/moz.build
author Tooru Fujisawa <arai_a@mac.com>
Wed, 13 Mar 2019 04:29:44 +0000
changeset 521653 123ecc5c9586
parent 521651 7cbe3fbc4b7f
child 521654 976e93ae2dbc
permissions -rw-r--r--
Bug 1505343 - Part 1: Rename binsource => binast. r=Yoric Differential Revision: https://phabricator.services.mozilla.com/D23097

# -*- 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
GENERATED_FILES += ['ReservedWordsGenerated.h']
ReservedWordsGenerated = GENERATED_FILES['ReservedWordsGenerated.h']
ReservedWordsGenerated.script = 'GenerateReservedWords.py'
ReservedWordsGenerated.inputs += ['ReservedWords.h']


UNIFIED_SOURCES += [
    'BytecodeCompiler.cpp',
    'BytecodeControlStructures.cpp',
    'BytecodeEmitter.cpp',
    'CallOrNewEmitter.cpp',
    'CForEmitter.cpp',
    'DefaultEmitter.cpp',
    'DoWhileEmitter.cpp',
    'ElemOpEmitter.cpp',
    'EmitterScope.cpp',
    'ExpressionStatementEmitter.cpp',
    'FoldConstants.cpp',
    'ForInEmitter.cpp',
    'ForOfEmitter.cpp',
    'ForOfLoopControl.cpp',
    'FunctionEmitter.cpp',
    'IfEmitter.cpp',
    'JumpList.cpp',
    'LabelEmitter.cpp',
    'LexicalScopeEmitter.cpp',
    'NameFunctions.cpp',
    'NameOpEmitter.cpp',
    'ObjectEmitter.cpp',
    'ParseContext.cpp',
    'ParseNode.cpp',
    'PropOpEmitter.cpp',
    'SharedContext.cpp',
    'SwitchEmitter.cpp',
    'TDZCheckCache.cpp',
    'TokenStream.cpp',
    'TryEmitter.cpp',
    'WhileEmitter.cpp',
]

# Parser.cpp cannot be built in unified mode because of explicit
#   template instantiations.
SOURCES += [
    'Parser.cpp',
]

if CONFIG['JS_BUILD_BINAST']:
    # Using SOURCES, as UNIFIED_SOURCES causes mysterious bugs on 32-bit
    # platforms.

    # These parts of BinAST should eventually move to release.
    SOURCES += [
        'BinASTParser.cpp',
        'BinASTParserBase.cpp',
        'BinASTParserPerTokenizer.cpp',
        'BinASTRuntimeSupport.cpp',
        'BinToken.cpp',
        'BinTokenReaderBase.cpp',
        'BinTokenReaderMultipart.cpp',
    ]

    DIRS += [
        'binast'
    ]

    # Instrument BinAST files for fuzzing as we have a fuzzing target for BinAST.
    if CONFIG['FUZZING_INTERFACES'] and CONFIG['LIBFUZZER']:
        include('/tools/fuzzing/libfuzzer-flags.mozbuild')

        SOURCES['BinASTParser.cpp'].flags += libfuzzer_flags
        SOURCES['BinASTParserBase.cpp'].flags += libfuzzer_flags
        SOURCES['BinASTParserPerTokenizer.cpp'].flags += libfuzzer_flags
        SOURCES['BinToken.cpp'].flags += libfuzzer_flags
        SOURCES['BinTokenReaderBase.cpp'].flags += libfuzzer_flags
        SOURCES['BinTokenReaderMultipart.cpp'].flags += libfuzzer_flags