blob: 17b1ded20fe6c3cf7890b21f642afb89befe0b89 [file] [log] [blame]
// Copyright (c) 2015, 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.
/// Allows interoperability with Javascript APIs.
library js;
export 'dart:js' show allowInterop, allowInteropCaptureThis;
/// A metadata annotation that indicates that a Library, Class, or member is
/// implemented directly in JavaScript. All external members of a class or
/// library with this annotation implicitly have it as well.
///
/// Specifying [name] customizes the JavaScript name to use. By default the
/// dart name is used. It is not valid to specify a custom [name] for class
/// instance members.
class JS {
final String name;
const JS([this.name]);
}
class _Anonymous {
const _Anonymous();
}
/// A metadata annotation that indicates that a @JS annotated class is
/// structural and does not have a known JavaScript prototype.
///
/// Factory constructors for anonymous JavaScript classes desugar to creating
/// JavaScript object literals with name-value pairs corresponding to the
/// parameter names and values.
const _Anonymous anonymous = const _Anonymous();