ensemble_ts_interpreter 1.2.0
ensemble_ts_interpreter: ^1.2.0 copied to clipboard
A JavaScript (ES5) interpreter written entirely in Dart for Flutter applications. Execute JavaScript code inline within your Dart/Flutter app without external engines.
1.2.0 Practical ES5 Runtime Stability #
- Added a documented practical ES5 compatibility baseline with focused regression tests.
- Improved interpreter semantics for ES5 control flow, operators, functions,
this, constructors,arguments, object descriptors, accessors, prototypes, sparse arrays, and JSON behavior. - Added practical support for
Object.create,Object.assign,Object.getPrototypeOf,Object.defineProperty,Object.getOwnPropertyDescriptor,hasOwnProperty,propertyIsEnumerable, andFunction.prototype.call/apply/bind. - Hardened array and string behavior around sparse arrays, holes, negative indexes, optional bounds, string indexes, and JS-style numeric parsing/coercion.
- Preserved existing Ensemble interop and selected ES6+ conveniences such as arrow functions,
Map,Set, andPromise. - Added runtime safety guards for circular
JSON.stringifyinputs and extremely large sparse-array expansion. - Added package-level performance smoke coverage and made primitive date tests timezone-stable.
- Added
doc/known_supported_js.mdto describe supported JS, ES6+ conveniences, and known unsupported areas.
1.0.7 Bug Fixes #
- Fixed issue where Error objects were not being properly unwrapped in catch clauses.
1.0.6 Allow Global code to overwrite imported functions #
- Allow Global code to overwrite imported functions, aligning with JavaScript behavior
1.0.5 Add invokable collections and enhance JSON handling #
- Introduced JSMap and JSSet classes for JavaScript-like map and set functionalities, including methods for manipulation and retrieval.
- Added JSResponse and Fetch classes to handle HTTP requests and responses, integrating with promises for asynchronous operations.
- Enhanced JSON class methods to support replacer and reviver functions for stringify and parse operations.
- Implemented additional methods in StaticObject and InvokableObject for object manipulation.
- Added static utility classes for Array, Number, String, and Performance to provide JavaScript-like functionalities in Dart.
1.0.4 Bug Fixes #
- Updated Date class to support cloning from Date instances and improved fallback parsing logic.
- Enhanced Console class with multiple logging methods (log, info, warn, error, debug, trace) and argument normalization.
- Introduced private methods for argument formatting and emission to streamline logging functionality.
- Improved context handling in JSInterpreter for better scope resolution and function declaration hoisting.
1.0.3 Moved to packages directory #
1.0.2 Package Publication and Code Quality Improvements #
- Package prepared for pub.dev publication
- Enhanced documentation and examples
- Improved package metadata and structure
- Updated dependencies and SDK constraints
- Fixed analysis warnings: removed unused imports and variables
- Reduced analysis issues from 80 to 70
1.0.0 Package Publication #
- Package prepared for pub.dev publication
- Enhanced documentation and examples
- Improved package metadata and structure
- Updated dependencies and SDK constraints
1.0.0+1 Initial Package #
- Initial Package
- Support for javascript (ES5) syntax
- Supports most of the Javascript primitive types such as string, number, arrays and maps.
- Supports declaring javascript functions and calling them
- Does not support declaring classes or interfaces or instantiating them.
- Does not support import or require