# Copyright (c) 2017, 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 for the dart:async library.
async_sdk_sources = [
  "async.dart",

  # The above file needs to be first as it lists the parts below.
  "async_error.dart",
  "broadcast_stream_controller.dart",
  "deferred_load.dart",
  "future.dart",
  "future_impl.dart",
  "schedule_microtask.dart",
  "stream.dart",
  "stream_controller.dart",
  "stream_impl.dart",
  "stream_pipe.dart",
  "stream_transformers.dart",
  "timer.dart",
  "zone.dart",
]
