https://github.com/mozilla/gecko-dev
Raw File
Tip revision: 717b1cdc7109767ac16cf4aaa0e6c4803352a9e8 authored by Ted Campbell on 07 November 2020, 05:36:31 UTC
Bug 1675905 - Simplify IonBuilder::createThisScripted. r=jandem,iain a=RyanVM
Tip revision: 717b1cd
moz.build
# -*- 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
GeneratedFile('ReservedWordsGenerated.h', script='GenerateReservedWords.py',
              inputs=['ReservedWords.h'])

if CONFIG['JS_ENABLE_SMOOSH']:
    GeneratedFile('smoosh_generated.h',
                  script='/build/RunCbindgen.py',
                  entry_point='generate_with_same_crate',
                  inputs=[
                      '/js/src/frontend/smoosh',
                  ])

UNIFIED_SOURCES += [
    'AbstractScopePtr.cpp',
    'BytecodeCompiler.cpp',
    'BytecodeControlStructures.cpp',
    'BytecodeEmitter.cpp',
    'BytecodeSection.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',
    'ObjLiteral.cpp',
    'OptionalEmitter.cpp',
    'ParseContext.cpp',
    'ParseNode.cpp',
    'ParseNodeVerify.cpp',
    'PropOpEmitter.cpp',
    'SharedContext.cpp',
    'SourceNotes.cpp',
    'Stencil.cpp',
    'SwitchEmitter.cpp',
    'TDZCheckCache.cpp',
    'TokenStream.cpp',
    'TryEmitter.cpp',
    'WhileEmitter.cpp',
]

if CONFIG['JS_ENABLE_SMOOSH']:
    UNIFIED_SOURCES += [
        'Frontend2.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',
        'BinASTToken.cpp',
        'BinASTTokenReaderBase.cpp',
        'BinASTTokenReaderContext.cpp',
        'BinASTTokenReaderMultipart.cpp',
    ]

    if CONFIG['JS_STANDALONE']:
        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['BinASTToken.cpp'].flags += libfuzzer_flags
        SOURCES['BinASTTokenReaderBase.cpp'].flags += libfuzzer_flags
        SOURCES['BinASTTokenReaderMultipart.cpp'].flags += libfuzzer_flags
back to top