v1.0.6
Release Notes - v1.0.6
Highlights
This release introduces a comprehensive timer system (setTimeout, setInterval), ES2022 private class elements, CommonJS module support, resource management (using/await using), type predicates, and many type system enhancements.
Timer System
Full implementation of JavaScript timer APIs with proper main-thread execution:
setTimeout/clearTimeout- Delayed callback executionsetInterval/clearInterval- Repeating callback executionglobalThis- ES2020 global object support with property access and method calls- Virtual timer system - Main thread execution to avoid scheduling issues across platforms
- Automatic cleanup - Timer registration for proper disposal on interpreter shutdown
- Thread synchronization - Callback execution synchronized with interpreter's main thread
ES2022 Private Class Elements
Full support for private class members in both interpreter and IL compiler:
- Private fields -
#fieldsyntax with proper encapsulation - Private methods -
#method()with access checks - IL compiler support - Complete implementation including initialization and access validation
Class Enhancements
- Auto-accessor fields - TypeScript 4.9+
accessorkeyword support declarefield modifier - For ambient class field declarations- Static blocks - Class-level static initialization blocks
- Constructor signatures in interfaces - Enhanced type checking support
- Function type members - Support for function-typed class members
- Bound function constructor restriction - Enforced as per spec
Module System
- CommonJS support -
require()andmodule.exportssyntax with module dependency management - Triple-slash references -
/// <reference path="..." />for script-style file concatenation - Module/global augmentations - Declaration merging support
- Enhanced export handling - Improved static member resolution for imported classes
Resource Management
usingdeclarations - Explicit resource management for synchronous disposablesawait usingdeclarations - Async resource management with proper cleanup
Type System Enhancements
- Type predicates -
x is Typereturn type annotations with multi-parameter narrowing satisfiesoperator - TypeScript 4.9 expression-level type validation- Unique symbol types -
unique symbolsupport with predefined well-known symbols objecttype - Proper TypeScriptobjecttype with enhanced compatibility checks- Recursive type aliases - Self-referential type definitions
- Variance annotations -
in/outmodifiers for generic type parameters - Const type parameters -
constmodifier for generic parameters - Variadic tuples - Enhanced tuple type compatibility with spread support
Language Features
- Tagged template literals - Custom string processing with tag functions
String.raw- Raw string access for tagged templates- Named function expressions - Proper recursion and scoping for
const f = function name() {}
Array Methods
splice()/toSpliced()- Mutable and immutable array element replacementsort()/toSorted()- Mutable and immutable sorting with JS-compliant undefined handling
Testing & Quality
- CLI integration tests - Comprehensive tests for compilation, error handling, and script execution
- Negative compiler tests - Resilience testing against malformed input
- Parity tests - Built-in module compatibility verification
- End-to-end packaging tests - Full
--packworkflow validation
Infrastructure Improvements
- ClassRegistry - Refactored class member management
- OperatorDescriptor - Centralized operator semantics with enhanced type checking
- CommandLineParser - Proper command-line argument parsing with help messages
- TypeScript declaration generation - Enhanced support for nested types and obsolete attributes
$Hashclass - Standalone crypto method wrappers
Bug Fixes & Refactoring
- Removed redundant runtime DLL copy in compiled execution
- Improved variable type handling for self-referential callbacks
- Normalized path separators for cross-platform compatibility
- Simplified async evaluation methods
- Enhanced error reporting in Lexer
- Fixed simple class name null checks in type-checker
Full Changelog: v1.0.5...v1.0.6