NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4341 most downloaded on pub.dev
A flexible Dart bytecode compiler and interpreter written in Dart, enabling dynamic execution and code push for AOT Dart apps.
Last release 4 months ago
12 May 2026
Release timing varies
gaps range from 9 days to 8 months
Nearly every release is documented
notes for 43 of 44 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
45 releases · first in 2021
One column per quarter.
Support for local function declarations (thanks @khoadng)
var t = List<int> (thanks @khoadng)== and != operators.breaks inside a loop.List.sort() with default comparator (thanks @khoadng)Exception class constructor binding (thanks @khoadng)is tests on Object-typed variables (thanks @khoadng)- Update analyzer to v8. - Fixed try without catch.
Support for top level functions in the binding generator
Fix incorrect accessor index when creating bridge classes with the binding generator
Added support for configurable parser error handling
await on a bridged future
(thanks @MohamedAl-Kainai)(Breaking) Type parameters provided to BridgeTypeRef are now BridgeTypeAnnotation objects instead of BridgeTypeRef objects to allow for specifying nul
BridgeTypeAnnotation objects instead of BridgeTypeRef objects to allow
for specifying nullability.super()&& and ||dynamic types. This is
currently limited to functions without named arguments.if branchByteConversionSink and ChunkedConversionSinknum.abs(), Map.keys and Map.values (thanks @knatola)EncodingSupport for list spreads (... operator) (thanks @apps-auth)
... operator) (thanks @apps-auth)implicitSupers option for the binding generator to automatically
generate bindings for superclasses of classes that are boundMap.from() and num.toDouble() (thanks @apps-auth)Binding generator can now be configured with custom library paths
Process class and its support classesDeprecated runtime.wrapRecursive(). Use runtime.wrap(recursive: true) instead.
Object properties (eg toString, hashCode) for classes
declared inside dart_evalruntime.wrap().runtime.wrapRecursive(). Use runtime.wrap(recursive: true)
instead.Support for runtime methods, static setters, type parameters, class inheritance, anonymous function types, and typedefs in the binding generator
MapEntry, List.firstWhere(), and HttpStatus (thanks
@Noobware1)Support for redirecting constructors
Map.remove()Support for 'break' inside loops
Create writeback-capable List wrapper. Use $List.view() with a type mapper function to create a view of an underlying List that can be written to.
$List.view() with a type mapper
function to create a view of an underlying List that can be written to.$List.view in the binding generatorconfigureForRuntime methodsFix return value boxing of equals and not equals operators
Error, UnimplementedError, UnsupportedError,
and StackTrace (thanks @Noobware1)InternetAddress and InternetAddressType (thanks
@Noobware1)toString() on dynamic types (thanks @Noobware1)jsonEncode() and jsonDecode() (thanks @Noobware1)Fix error when setting a top-level variable
List.of(), List.from(), and List.removeWhere() (thanks
@Noobware1)Compiler now infers variable types when using the if (x is Y) pattern
if (x is Y) patternUri methods and constructors (thanks @Noobware1 and
@kodjodevf)Base64Codec, Base64Decoder, Base64Encoder,
utf8.decode(), and utf8.encode() (thanks @kodjodevf)Map.containsKey() (thanks @DeleMike)String.codeUnits (thanks @Noobware1)String.fromCharCodes (thanks @kodejodevf)ArgumentError, StateError, and StreamViewEliminate requirement to call setup() on the Runtime. Setup is now invoked automatically and the setup method is deprecated.
[] indexed getter for stringsRegExpMatch bimodal(Breaking) Removed RuntimeTypes. All builtin types are referenced with CoreTypes/AsyncTypes etc now.
main.dart is always an entrypoint. See README for details.num and intRegExpMatch and most RegExp methods (thanks @Noobware1)identical and Object.hash functionsruntimeType???.!class T implements Comparable<T>rethrowException, RangeError, and FormatExceptionSymbol and ZoneByteBuffer, TypedData, ByteData,
and Uint8List from dart:typed_dataLinkedHashMap from dart:collectionSupport for try/finally and try/catch/finally
Support for asserts and AssertionError
as)AssertionErrorSupport for null coalescing assignment operator ??=
??=List and Iterable methods (thanks @kodjodevf)Hotfix to increase size of globals array in runtime
Support for bitwise int xor operator
Support for multiple catch clauses and on
on|, &, <<, and >>parse / tryParse constructors (thanks @oneplus1000)(Deprecated) BridgeTypeRef.spec, use the default constructor instead
BridgeTypeRef.spec, use the default constructor insteadBridgeDeclarationRegistry
instead of Compiler in configureForCompile().is type-test expressionsexamples/dart_eval_extensions_syntax.dart.Functionawait(Breaking) Use DartTypes.list instead of RuntimeTypes.listType in bridge class definitions.
foreval()Nothing published for this version
Deprecated compilerSettings and runtimeSettings in eval() in favor of plugins
eval() methodeval()
in favor of pluginsnullable param from KnownMethodArg in favor
of the new nullable param in TypeRefSupport for class getters and setters
Fix Maps without explicit type parameters
Propagate expected types from variable declarations and argument lists to the expressions they contain.
Note: EVC bytecode generated with this version may not be compatible with previous versions.
Note: EVC bytecode generated with this version may not be compatible with previous versions.
Add bindings for the dart:math Point class
Support for bridged static getters
Support for arrow function expressions
CLI: allow invoking without dart pub global run
dart pub global runCLI: Improved ease of use and documentation
BridgeTypeRef.ref is now supported in limited cases for
referencing generic class type parameterseval() method now lets you specify an output file
path and does not automatically output a file if left
unspecifiedFix analyzer version constraint
Fix a potential crash when resolving common base types.
(Breaking) You must now specify the bridge or wrap parameter in a BridgeClassDef
bridge or wrap parameter in a
BridgeClassDefisBridge: true when registering a bridge
class constructor with runtime.registerBridgeFunc()this and super in
closuresString.substring() (thanks to @maks)(Deprecated) Runtime.executeNamed() is deprecated. Use Runtime.executeLib() instead.
Runtime.executeNamed() is deprecated. Use Runtime.executeLib()
instead.show and hide on imports and exportsextends, implements, and with on bridge classesPartial support for anonymous functions and the Dart runtime type system
if for Listsasync/await via continuations, as well as Future.then()Add support for if, basic for, number comparison operators, and postfix ++
if, basic for, number comparison operators, and postfix +++, -, *, and / operators- Make the Pub analyzer happy - Add some Dartdoc comments
Add support for List and Map types
Your coding agent can read these notes before it upgrades. Set up the MCP server →