# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# This file contains all sources (vm and tests) for the dart virtual machine.
# Unit test files need to have a '_test' suffix appended to the name.
{
  'sources': [
    'allocation.cc',
    'allocation.h',
    'allocation_test.cc',
    'assembler.cc',
    'assembler.h',
    'assembler_test.cc',
    'assembler_arm.cc',
    'assembler_arm.h',
    'assembler_ia32.cc',
    'assembler_ia32.h',
    'assembler_ia32_test.cc',
    'assembler_macros.h',
    'assembler_macros_arm.cc',
    'assembler_macros_arm.h',
    'assembler_macros_ia32.cc',
    'assembler_macros_ia32.h',
    'assembler_macros_mips.cc',
    'assembler_macros_mips.h',
    'assembler_macros_x64.cc',
    'assembler_macros_x64.h',
    'assembler_mips.cc',
    'assembler_mips.h',
    'assembler_x64.cc',
    'assembler_x64.h',
    'assembler_x64_test.cc',
    'assert_test.cc',
    'ast.cc',
    'ast.h',
    'ast_test.cc',
    'ast_printer.h',
    'ast_printer.cc',
    'ast_printer_test.cc',
    'base_isolate.h',
    'benchmark_test.cc',
    'benchmark_test.h',
    'bigint_operations.cc',
    'bigint_operations.h',
    'bigint_operations_test.cc',
    'bit_vector.cc',
    'bit_vector.h',
    'bit_vector_test.cc',
    'bitfield.h',
    'bitfield_test.cc',
    'bitmap.cc',
    'bitmap.h',
    'bitmap_test.cc',
    'boolfield.h',
    'boolfield_test.cc',
    'bootstrap.h',
    'bootstrap_natives.cc',
    'bootstrap_natives.h',
    'cha.cc',
    'cha.h',
    'cha_test.cc',
    'class_finalizer.h',
    'class_finalizer.cc',
    'class_finalizer_test.cc',
    'class_table.cc',
    'class_table.h',
    'code_descriptors.cc',
    'code_descriptors.h',
    'code_descriptors_test.cc',
    'code_generator.cc',
    'code_generator.h',
    'code_generator_test.cc',
    'code_observers.cc',
    'code_observers.h',
    'code_patcher.h',
    'code_patcher.cc',
    'code_patcher_arm.cc',
    'code_patcher_ia32.cc',
    'code_patcher_ia32_test.cc',
    'code_patcher_mips.cc',
    'code_patcher_x64.cc',
    'code_patcher_x64_test.cc',
    'compiler.h',
    'compiler.cc',
    'compiler_stats.h',
    'compiler_stats.cc',
    'compiler_test.cc',
    'constants_arm.h',
    'constants_ia32.h',
    'constants_mips.h',
    'constants_x64.h',
    'cpu.h',
    'cpu_arm.cc',
    'cpu_ia32.cc',
    'cpu_mips.cc',
    'cpu_x64.cc',
    'cpu_test.cc',
    'custom_isolate_test.cc',
    'dart.cc',
    'dart.h',
    'dart_api_impl.h',
    'dart_api_state.h',
    'dart_api_impl_test.cc',
    'dart_api_message.cc',
    'dart_api_message.h',
    'dart_entry.cc',
    'dart_entry.h',
    'dart_entry_test.cc',
    'debugger.cc',
    'debugger.h',
    'debugger_arm.cc',
    'debugger_ia32.cc',
    'debugger_mips.cc',
    'debugger_x64.cc',
    'debugger_api_impl_test.cc',
    'deopt_instructions.cc',
    'deopt_instructions.h',
    'disassembler.cc',
    'disassembler.h',
    'disassembler_arm.cc',
    'disassembler_ia32.cc',
    'disassembler_mips.cc',
    'disassembler_x64.cc',
    'disassembler_test.cc',
    'debuginfo.h',
    'debuginfo_android.cc',
    'debuginfo_linux.cc',
    'double_conversion.cc',
    'double_conversion.h',
    'exceptions.cc',
    'exceptions.h',
    'exceptions_test.cc',
    'find_code_object_test.cc',
    'flags.cc',
    'flags.h',
    'flags_test.cc',
    'flow_graph.cc',
    'flow_graph.h',
    'flow_graph_allocator.cc',
    'flow_graph_allocator.h',
    'flow_graph_builder.cc',
    'flow_graph_builder.h',
    'flow_graph_compiler.cc',
    'flow_graph_compiler.h',
    'flow_graph_compiler_arm.cc',
    'flow_graph_compiler_ia32.cc',
    'flow_graph_compiler_mips.cc',
    'flow_graph_compiler_x64.cc',
    'flow_graph_inliner.cc',
    'flow_graph_inliner.h',
    'flow_graph_optimizer.cc',
    'flow_graph_optimizer.h',
    'freelist.cc',
    'freelist.h',
    'freelist_test.cc',
    'gc_marker.cc',
    'gc_marker.h',
    'gc_sweeper.cc',
    'gc_sweeper.h',
    'gdbjit_android.cc',
    'gdbjit_android.h',
    'gdbjit_linux.cc',
    'gdbjit_linux.h',
    'globals.h',
    'growable_array.h',
    'growable_array_test.cc',
    'handles.cc',
    'handles.h',
    'handles_impl.h',
    'handles_test.cc',
    'hash_map.h',
    'hash_map_test.cc',
    'hash_set.h',
    'heap.cc',
    'heap.h',
    'heap_profiler.cc',
    'heap_profiler.h',
    'heap_profiler_test.cc',
    'heap_test.cc',
    'heap_trace.cc',
    'heap_trace.h',
    'heap_trace_test.cc',
    'il_printer.cc',
    'il_printer.h',
    'instructions.h',
    'instructions_arm.cc',
    'instructions_arm.h',
    'instructions_ia32.cc',
    'instructions_ia32.h',
    'instructions_ia32_test.cc',
    'instructions_mips.cc',
    'instructions_mips.h',
    'instructions_x64.cc',
    'instructions_x64.h',
    'instructions_x64_test.cc',
    'intermediate_language.cc',
    'intermediate_language.h',
    'intermediate_language_arm.cc',
    'intermediate_language_ia32.cc',
    'intermediate_language_mips.cc',
    'intermediate_language_x64.cc',
    'intermediate_language_test.cc',
    'intrinsifier.h',
    'intrinsifier.cc',
    'intrinsifier_arm.cc',
    'intrinsifier_ia32.cc',
    'intrinsifier_mips.cc',
    'intrinsifier_x64.cc',
    'isolate.cc',
    'isolate.h',
    'isolate_test.cc',
    'json_test.cc',
    'locations.cc',
    'locations.h',
    'longjump.cc',
    'longjump.h',
    'longjump_test.cc',
    'megamorphic_cache_table.cc',
    'megamorphic_cache_table.h',
    'memory_region.cc',
    'memory_region.h',
    'memory_region_test.cc',
    'message.cc',
    'message.h',
    'message_test.cc',
    'message_handler.cc',
    'message_handler.h',
    'message_handler_test.cc',
    'native_arguments.cc',
    'native_arguments.h',
    'native_entry.cc',
    'native_entry.h',
    'native_entry_test.cc',
    'native_entry_test.h',
    'native_message_handler.cc',
    'native_message_handler.h',
    'object.cc',
    'object.h',
    'object_test.cc',
    'object_arm_test.cc',
    'object_ia32_test.cc',
    'object_mips_test.cc',
    'object_x64_test.cc',
    'object_store.cc',
    'object_store.h',
    'object_store_test.cc',
    'os_android.cc',
    'os_linux.cc',
    'os_macos.cc',
    'os_win.cc',
    'os.h',
    'os_test.cc',
    'parser.cc',
    'parser.h',
    'parser_test.cc',
    'pages.cc',
    'pages.h',
    'pages_test.cc',
    'port.cc',
    'port.h',
    'port_test.cc',
    'raw_object.cc',
    'raw_object.h',
    'raw_object_snapshot.cc',
    'resolver.cc',
    'resolver.h',
    'resolver_test.cc',
    'runtime_entry.h',
    'runtime_entry_arm.cc',
    'runtime_entry_ia32.cc',
    'runtime_entry_mips.cc',
    'runtime_entry_x64.cc',
    'runtime_entry_test.cc',
    'scanner.cc',
    'scanner.h',
    'scanner_test.cc',
    'scavenger.cc',
    'scavenger.h',
    'scopes.cc',
    'scopes.h',
    'scopes_test.cc',
    'snapshot.cc',
    'snapshot.h',
    'snapshot_ids.h',
    'snapshot_test.cc',
    'stack_frame.cc',
    'stack_frame_arm.cc',
    'stack_frame_ia32.cc',
    'stack_frame_mips.cc',
    'stack_frame_x64.cc',
    'stack_frame.h',
    'stack_frame_test.cc',
    'store_buffer.cc',
    'store_buffer.h',
    'stub_code.cc',
    'stub_code.h',
    'stub_code_arm.cc',
    'stub_code_ia32.cc',
    'stub_code_ia32_test.cc',
    'stub_code_mips.cc',
    'stub_code_x64.cc',
    'stub_code_x64_test.cc',
    'symbols.cc',
    'symbols.h',
    'thread.h',
    'thread_test.cc',
    'thread_pool.cc',
    'thread_pool.h',
    'thread_pool_test.cc',
    'timer.cc',
    'timer.h',
    'token.cc',
    'token.h',
    'unicode.cc',
    'unicode.h',
    'unicode_data.cc',
    'unicode_test.cc',
    'unit_test.cc',
    'unit_test.h',
    'utils_test.cc',
    'virtual_memory.cc',
    'virtual_memory.h',
    'virtual_memory_android.cc',
    'virtual_memory_linux.cc',
    'virtual_memory_macos.cc',
    'virtual_memory_test.cc',
    'virtual_memory_win.cc',
    'verifier.cc',
    'verifier.h',
    'visitor.h',
    'vtune.cc',
    'vtune.h',
    'zone.cc',
    'zone.h',
    'zone_test.cc',
  ],
}
