| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /// A constant that is true if the application was compiled in release mode. |
| /// |
| /// More specifically, this is a constant that is true if the application was |
| /// compiled in Dart with the '-Ddart.vm.product=true' flag. |
| /// |
| /// Since this is a const value, it can be used to indicate to the compiler that |
| /// a particular block of code will not be executed in release mode, and hence |
| /// can be removed. |
| const bool kReleaseMode = bool.fromEnvironment('dart.vm.product', defaultValue: false); |
| |
| /// A constant that is true if the application was compiled in profile mode. |
| /// |
| /// More specifically, this is a constant that is true if the application was |
| /// compiled in Dart with the '-Ddart.vm.profile=true' flag. |
| /// |
| /// Since this is a const value, it can be used to indicate to the compiler that |
| /// a particular block of code will not be executed in profile mode, an hence |
| /// can be removed. |
| const bool kProfileMode = bool.fromEnvironment('dart.vm.profile', defaultValue: false); |
| |
| /// A constant that is true if the application was compiled in debug mode. |
| /// |
| /// More specifically, this is a constant that is true if the application was |
| /// not compiled with '-Ddart.vm.product=true' and '-Ddart.vm.profile=true'. |
| /// |
| /// Since this is a const value, it can be used to indicate to the compiler that |
| /// a particular block of code will not be executed in debug mode, and hence |
| /// can be removed. |
| const bool kDebugMode = !kReleaseMode && !kProfileMode; |
| |
| /// The epsilon of tolerable double precision error. |
| /// |
| /// This is used in various places in the framework to allow for floating point |
| /// precision loss in calculations. Differences below this threshold are safe to |
| /// disregard. |
| const double precisionErrorTolerance = 1e-10; |
| |
| /// A constant that is true if the application was compiled to run on the web. |
| /// |
| /// This implementation takes advantage of the fact that JavaScript does not |
| /// support integers. In this environment, Dart's doubles and ints are |
| /// backed by the same kind of object. Thus a double `0.0` is identical |
| /// to an integer `0`. This is not true for Dart code running in AOT or on the |
| /// VM. |
| const bool kIsWeb = identical(0, 0.0); |