d4rt 0.1.7
d4rt: ^0.1.7 copied to clipboard
An interpreter and runtime for the Dart language. It allows you to execute Dart code dynamically in your Dart/Flutter applications
0.1.7 #
- feat: Security sandboxing system - Comprehensive permission-based security system to restrict dangerous operations
- Implement modular permission system with
FilesystemPermission,NetworkPermission,ProcessRunPermission,IsolatePermission - Block access to dangerous modules (
dart:io,dart:isolate) by default unless explicitly granted - Add
d4rt.grant(),d4rt.revoke(),d4rt.hasPermission()methods for permission management - Integrate permission checking into module loading and import directives
- Support fine-grained permissions (specific paths, commands, network hosts)
- Add comprehensive security tests to prevent malicious code execution
- Enable safe execution environment for untrusted code
- Implement modular permission system with
0.1.6 #
- fix: Nested for-in loops in async contexts now work correctly
- fix: Async nested for-in loops with await for streams works
- feat: enhance async execution state to support nested await-for loops and improve iterator management; add comprehensive tests for complex async scenarios
- feat: Compound super operators - Support for compound assignment operators on super properties (+=, -=, *=, /=, ~/=, %=, &=, |=, ^=, <<=, >>=, >>>=)
- Implement proper lookup and evaluation of super properties in compound assignments
- Support for both interpreted and bridged superclass properties
- Add 6 comprehensive test cases covering all operator types and nested inheritance
- feat: Bridged static methods as values - Bridged static methods can now be treated as first-class function values
- Support for accessing bridged static methods as callable values (e.g.,
int.parse) - Enable passing bridged static methods to higher-order functions
- Store bridged static methods in collections and variables
- Add 5 test cases for static method value usage patterns
- Support for accessing bridged static methods as callable values (e.g.,
- feat: Complex generic type checking - Enhanced runtime type checking for generic collections with type parameters
- Support
isoperator with parameterized types (List - Runtime validation of generic type constraints
- Proper handling of nested generic types and null safety
- Add 10 comprehensive test cases for various generic type checking scenarios
- Support
- feat: Complex await assignments - Advanced await expression support in various contexts
- Support await in conditional expressions (ternary operator)
- Support await in list/map literals and collection operations
- Support await in compound assignments and complex expressions
- Support await in constructor arguments and method chains
- Add 10 test cases covering complex async assignment patterns
- feat: Stream transformers - Complete implementation of StreamTransformer and stream manipulation
- Implement
StreamTransformer.fromHandlerswith handleData, handleError, handleDone - Support stream transformation with custom logic
- Implement bidirectional stream transformers
- Support stream event handling and error propagation
- Add 10 comprehensive test cases for stream transformation patterns
- Implement
- feat: Const expressions complexes - Enhanced support for const expressions in various contexts
- Support const List and Map literals with type parameters
- Support const expressions in field initializers and default parameters
- Support nested const collections and complex const expressions
- Proper compile-time evaluation of const expressions
- Add 15 test cases covering const expression usage patterns
- feat: Feature #7 - Enhanced enums with mixins - Enums can now use mixins to add functionality
- Support
enum Name with Mixinsyntax - Mixins can add methods, getters, and properties to enum values
- Support multiple mixins on a single enum
- Full integration with enum values (index, name, toString)
- Add 15 comprehensive test cases for enum-mixin combinations
- Support
- feat: Extensions statiques - Extensions can now declare static members (methods, getters, setters, fields)
- Implement static member storage in
InterpretedExtensionclass - Add static member access via
Extension.membersyntax - Support static method calls, property access, and assignments
- Add support for prefix/postfix increment/decrement operators on static extension fields
- Add 15 comprehensive test cases covering all static extension member types
- Implement static member storage in
- feat: Enhance compound super assignments for bridged classes - Full support for compound assignments on properties inherited from bridged superclasses
- Fix
visitAssignmentExpressionto handle bridged superclass getters/setters in compoundsuperassignments - Fix
InterpretedInstance.get()to properly traverse bridged superclass hierarchy at each inheritance level - Fix
InterpretedInstance.set()to properly handle bridged superclass setters at each inheritance level - Support nested inheritance chains (Interpreted → Interpreted → Bridged)
- Add 5 comprehensive test cases for bridged super compound assignments
- Fix
- Total test count: 1269 tests passing - All 8 planned features fully implemented with comprehensive test coverage
0.1.5 #
- feat: implement handling of factory constructors in InterpreterVisitor; add comprehensive tests for factory constructor behavior
- feat: enhance async execution state and interpreter visitor to support break/continue handling; add comprehensive tests for nested async loops
- feat: enhance async execution state and interpreter visitor to support async* generators; add comprehensive tests for generator behavior and control flow
0.1.4 #
- feat: add methods to find and retrieve bridged enum values in Environment and InterpreterVisitor; enhance handling of bridged enums in property access and binary expressions
- feat: enhance documentation across multiple files; add examples and clarify class functionalities in D4rt interpreter
0.1.3 #
- Implement complete
latevariable support with lazy initialization and proper error handling - Add comprehensive late variable test coverage (33 test cases) including static fields, instance fields, final constraints, and error conditions
- Add LateVariable class with proper uninitialized access detection and assignment validation
- Enhance interpreter visitor to handle late variables in all contexts (local, static, instance)
- Fix nullable variable handling in interpreted class instances
- Add ComparableCore bridge to core standard library for better type comparison support
- Update documentation and project description for better clarity
0.1.2+1 #
- update project description in pubspec.yaml
- docs: minor updates to documentation in README.md
0.1.2 #
- Implement complete Isolate API with Capability, IsolateSpawnException, Isolate, SendPort, ReceivePort, RawReceivePort, RemoteError, and TransferableTypedData classes
- Add comprehensive isolate communication and message passing support
- Enhance async capabilities with Timer functionality and improved error handling
- Add UnawaitedAsync and TimeoutExceptionAsync classes for better async error management
- Implement additional HTTP methods and error handling in HttpClientIo
- Add toString method to DirectoryIo for better debugging
- Enhance FileSystemEntity with parentOf method and FileStat improvements
- Add FileSystemEvent static getters and methods
- Implement RawSocket and additional Socket classes for network programming
- Enhance Stream and Socket classes with additional utility methods
- Add IOSink, ProcessIo, and StringSink classes for improved I/O operations
- Implement Comparable interface for better type comparison support
- Add comprehensive test coverage for isolate, socket, and I/O functionality
- Update core typed data classes (Uint8List, Int16List, Float32List) with enhanced functionality
- Add list extension utilities for better collection manipulation
0.1.1 #
- Implement await for-in loop support for streams in interpreter
- Enhance pattern matching with support for rest elements in lists and maps
- Add support for await expressions in function and constructor arguments
- BREAKING CHANGE: BridgedClassDefinition has been removed and replaced with BridgedClass
0.1.0 #
- Added runtime checks for generic type constraints.
- Added support for compound bitwise assignment operators (&=, |=, etc.).
- Introduced Int16List and Float32List in typed_data.
0.0.9 #
- full support (generic classes/functions, type constraints, runtime validation)
- use BridgedClassDefinition for all Stdlib
- Support adjacent string literals in interpreter
- add operators support for InterpretedClass
- more features
0.0.8 #
- expose visitor getter
- add support for bridged mixins
- enhance async execution state with nested loop support
0.0.7 #
- fix: support null safety
0.0.6 #
- Update docs
0.0.5 #
- minor fix
0.0.4 #
- Add 'import/export' directive support, support for 'show' and 'hide' combinators
- Add some dart:collection & dart:typed_data
- Support for ParenthesizedExpression property access in simpleIdentifier in async state
0.0.3 #
- Fix infinite loop when using rethrow in try catch in async state
0.0.2 #
- Support web
- Fix return nativeValue for BridgedEnumValue to BridgedInstance argument
0.0.1 #
- Initial version.