# Copyright (c) 2011, 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.

# Sources visible via default library.

{
  'sources': [
    'double.cc',
    'double.dart',
    'double_patch.dart',
    'error.cc',
    'error.dart',
    'errors_patch.dart',
    'error.h',
    'expando_patch.dart',
    'function_patch.dart',
    'integers.cc',
    'integers.dart',
    'integers_patch.dart',
    'object_patch.dart',
    'print_patch.dart',
    'stopwatch.cc',
    'type_patch.dart',
    'weak_property.dart',
    'weak_property.cc',
  ],
}
