// Copyright (c) 2020, 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. import 'dart:async'; const Symbol _enabledExperimentsKey = #dartLanguageEnabledExperiments; /// The list of enabled Dart language experiments for the current [Zone]. /// /// This can be overridden for a new [Zone] by using [withEnabledExperiments]. List get enabledExperiments => Zone.current[_enabledExperimentsKey] as List? ?? const []; /// Runs [fn] in a [Zone], setting [enabledExperiments] for all code running /// in that [Zone]. T withEnabledExperiments(T Function() fn, List enabledExperiments) => runZoned(fn, zoneValues: {_enabledExperimentsKey: enabledExperiments});