// 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. /// Constants for use in metadata annotations to provide hints to dart2js. /// /// This is an experimental feature and not expected to be useful except for low /// level framework authors. /// /// Added at sdk version 2.0.0-dev.6.0 library meta_dart2js; /// An annotation for methods to request that dart2js does not inline the /// method. /// /// import 'package:meta/dart2js.dart' as dart2js; /// /// @dart2js.noInline /// String text() => 'A String of unusual size'; const _NoInline noInline = _NoInline(); /// An annotation for methods to request that dart2js always inline the /// method. /// /// dart2js will attempt to inline the method regardless of its size. Even with /// this annotation, there are conditions that can prevent dart2js from inlining /// a method, including complex control flow. /// /// import 'package:meta/dart2js.dart' as dart2js; /// /// @dart2js.tryInline /// String bigMethod() { /// for (int i in "Hello".runes) print(i); /// } /// /// It is an error to use both `@noInline` and `@tryInline` on the same method. const _TryInline tryInline = _TryInline(); class _NoInline { const _NoInline(); } class _TryInline { const _TryInline(); }