|  | // Copyright (c) 2012, 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 metadata; | 
|  |  | 
|  | /** | 
|  | * An annotation used to mark a feature as only being supported by a subset | 
|  | * of the browsers that Dart supports by default. | 
|  | * | 
|  | * If an API is not annotated with [SupportedBrowser] then it is assumed to | 
|  | * work on all browsers Dart supports. | 
|  | */ | 
|  | class SupportedBrowser { | 
|  | static const String CHROME = "Chrome"; | 
|  | static const String FIREFOX = "Firefox"; | 
|  | static const String IE = "Internet Explorer"; | 
|  | static const String OPERA = "Opera"; | 
|  | static const String SAFARI = "Safari"; | 
|  |  | 
|  | /// The name of the browser. | 
|  | final String browserName; | 
|  |  | 
|  | /// The minimum version of the browser that supports the feature, or null | 
|  | /// if supported on all versions. | 
|  | final String? minimumVersion; | 
|  |  | 
|  | const SupportedBrowser(this.browserName, [this.minimumVersion]); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * An annotation used to mark an API as being experimental. | 
|  | * | 
|  | * An API is considered to be experimental if it is still going through the | 
|  | * process of stabilizing and is subject to change or removal. | 
|  | * | 
|  | * See also: | 
|  | * | 
|  | * * [W3C recommendation](http://en.wikipedia.org/wiki/W3C_recommendation) | 
|  | */ | 
|  | class Experimental { | 
|  | const Experimental(); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Annotation that specifies that a member is editable through generate files. | 
|  | * | 
|  | * This is used for API generation. | 
|  | * | 
|  | * [name] should be formatted as `interface.member`. | 
|  | */ | 
|  | class DomName { | 
|  | final String name; | 
|  | const DomName(this.name); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Metadata that specifies that the member is editable through generated files. | 
|  | */ | 
|  | class DocsEditable { | 
|  | const DocsEditable(); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Annotation that indicates that an API is not expected to change but has | 
|  | * not undergone enough testing to be considered stable. | 
|  | */ | 
|  | class Unstable { | 
|  | const Unstable(); | 
|  | } |