// 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.

library dart2js.js_emitter;

import 'dart:convert';

import '../common.dart';

import '../constants/expressions.dart';
import '../constants/values.dart';

import '../closure.dart' show
    ClosureClassElement,
    ClosureClassMap,
    ClosureFieldElement,
    CapturedVariable;

import '../dart_types.dart' show
    TypedefType;

import '../io/code_output.dart';

import '../elements/elements.dart' show
    ConstructorBodyElement,
    ElementKind,
    FieldElement,
    ParameterElement,
    TypeVariableElement;

import '../hash/sha1.dart' show Hasher;

import '../helpers/helpers.dart';  // Included for debug helpers.

import '../js/js.dart' as jsAst;
import '../js/js.dart' show
    js;

import '../js_backend/js_backend.dart' show
    CheckedModeHelper,
    ConstantEmitter,
    CustomElementsAnalysis,
    JavaScriptBackend,
    JavaScriptConstantCompiler,
    Namer,
    RuntimeTypes,
    Substitution,
    TypeCheck,
    TypeChecks,
    TypeVariableHandler;

import 'model.dart';
import 'program_builder.dart';

import 'new_emitter/emitter.dart' as new_js_emitter;

import '../io/line_column_provider.dart' show
    LineColumnCollector,
    LineColumnProvider;

import '../io/source_map_builder.dart' show
    SourceMapBuilder;

import '../util/characters.dart' show
    $$,
    $A,
    $HASH,
    $PERIOD,
    $Z,
    $a,
    $z;

import '../util/util.dart' show
    NO_LOCATION_SPANNABLE,
    Setlet;

import '../util/uri_extras.dart' show
    relativize;

import '../util/util.dart' show
    equalElements;

import '../deferred_load.dart' show
    OutputUnit;

import 'package:_internal/compiler/js_lib/shared/embedded_names.dart'
    as embeddedNames;

import '../native/native.dart' as native;
part 'class_stub_generator.dart';
part 'code_emitter_task.dart';
part 'helpers.dart';
part 'interceptor_stub_generator.dart';
part 'metadata_collector.dart';
part 'native_emitter.dart';
part 'native_generator.dart';
part 'parameter_stub_generator.dart';
part 'type_test_generator.dart';
part 'type_test_registry.dart';

part 'old_emitter/class_builder.dart';
part 'old_emitter/class_emitter.dart';
part 'old_emitter/code_emitter_helper.dart';
part 'old_emitter/container_builder.dart';
part 'old_emitter/declarations.dart';
part 'old_emitter/emitter.dart';
part 'old_emitter/interceptor_emitter.dart';
part 'old_emitter/nsm_emitter.dart';
part 'old_emitter/reflection_data_parser.dart';
