|  | 
|  | 1 | +# Release Notes - v0.6.x Series | 
|  | 2 | + | 
|  | 3 | +## Version 0.6.0 - Modern JavaScript Operators & Enhanced Language Support | 
|  | 4 | + | 
|  | 5 | +_Released: 2025-01-08_ | 
|  | 6 | + | 
|  | 7 | +### Overview | 
|  | 8 | + | 
|  | 9 | +Version 0.6.0 represents a significant milestone in TypeScript2Cxx's evolution, delivering comprehensive support for modern JavaScript operators and enhanced destructuring capabilities. This release focuses on closing the gap with contemporary JavaScript/TypeScript language features, making the transpiler more capable of handling modern codebases. | 
|  | 10 | + | 
|  | 11 | +### Major Features | 
|  | 12 | + | 
|  | 13 | +#### Modern JavaScript Operators Support | 
|  | 14 | + | 
|  | 15 | +- **Exponentiation Operator (**)**: Full support for power operations | 
|  | 16 | +  - Transpiled to `std::pow()` with automatic `<cmath>` inclusion | 
|  | 17 | +  - Supports all numeric types: integers, decimals, negatives | 
|  | 18 | +  - Handles nested expressions: `2 ** (3 ** 2)` | 
|  | 19 | +  - Complex expressions: `a ** b + b ** a` | 
|  | 20 | + | 
|  | 21 | +- **Numeric Separators (1_000_000)**: Enhanced code readability | 
|  | 22 | +  - Integer literals: `1_000_000` → `1000000` | 
|  | 23 | +  - Decimal literals: `3.141_592_653` → `3.141592653` | 
|  | 24 | +  - Binary literals: `0b1010_0001` → `161` | 
|  | 25 | +  - Hex literals: `0xFF_EC` → `65516` | 
|  | 26 | + | 
|  | 27 | +#### Enhanced Object & Array Features | 
|  | 28 | + | 
|  | 29 | +- **Improved Destructuring Assignment**: | 
|  | 30 | +  - **Fixed duplicate declarations**: Destructuring code now only generated in source files | 
|  | 31 | +  - **Array slice support**: Added `slice()` method to `js::array` for rest elements | 
|  | 32 | +  - **Enhanced js::any slice**: Full slice support for any type containing arrays | 
|  | 33 | +  - Object destructuring: `const { a, b } = obj` | 
|  | 34 | +  - Array destructuring with rest: `const [first, ...rest] = arr` | 
|  | 35 | + | 
|  | 36 | +- **Advanced Spread Operator Support**: | 
|  | 37 | +  - **Array concatenation**: Full `concat()` method implementation | 
|  | 38 | +  - **Empty array handling**: Fixed template deduction with explicit `js::array<js::any>{}` | 
|  | 39 | +  - **Complex patterns**: `[0, ...arr1, 999, ...arr2, 1000]` | 
|  | 40 | +  - **Nested spreads**: `[...[...arr1, 2], 3]` | 
|  | 41 | +  - **Multiple spreads**: `[...single, ...single, ...single]` | 
|  | 42 | + | 
|  | 43 | +#### Runtime Library Enhancements | 
|  | 44 | + | 
|  | 45 | +- **Enhanced js::array Methods**: | 
|  | 46 | +  - `concat(const array<T>& other)` - concatenate arrays | 
|  | 47 | +  - `concat(const T& elem)` - append single elements | 
|  | 48 | +  - `slice(size_t start = 0)` - array slicing from start | 
|  | 49 | +  - `slice(size_t start, size_t end)` - array slicing with range | 
|  | 50 | + | 
|  | 51 | +- **js::any Improvements**: | 
|  | 52 | +  - `slice(int start = 0)` - delegate to contained array | 
|  | 53 | +  - `slice(int start, int end)` - range slicing support | 
|  | 54 | +  - Better type detection for array operations | 
|  | 55 | + | 
|  | 56 | +### Language Support Improvements | 
|  | 57 | + | 
|  | 58 | +#### Type System Enhancements | 
|  | 59 | + | 
|  | 60 | +- **BinaryOp Type Extension**: Added `"**"` to supported binary operators | 
|  | 61 | +- **Proper Operator Mapping**: Exponentiation now correctly mapped instead of falling back to addition | 
|  | 62 | +- **Include Management**: Automatic header inclusion for required system libraries | 
|  | 63 | + | 
|  | 64 | +#### Code Generation Quality | 
|  | 65 | + | 
|  | 66 | +- **Empty Array Fix**: Template deduction issues resolved for empty array literals | 
|  | 67 | +- **Consistent Formatting**: All generated code follows project style guidelines | 
|  | 68 | +- **Memory Safety**: Proper bounds checking in slice operations | 
|  | 69 | + | 
|  | 70 | +### Developer Experience | 
|  | 71 | + | 
|  | 72 | +#### Testing & Quality Assurance | 
|  | 73 | + | 
|  | 74 | +- **Comprehensive Test Coverage**: 16 new test cases across 3 feature areas | 
|  | 75 | +  - Spread Operator: 5 test cases covering all usage patterns | 
|  | 76 | +  - Numeric Separators: 5 test cases covering all literal types | 
|  | 77 | +  - Exponentiation Operator: 6 test cases covering all expression types | 
|  | 78 | + | 
|  | 79 | +- **Enhanced Pre-Release QA**: Automated quality checks ensure: | 
|  | 80 | +  - Code formatting compliance | 
|  | 81 | +  - TypeScript type checking | 
|  | 82 | +  - ESLint rule compliance | 
|  | 83 | +  - Core functionality verification | 
|  | 84 | + | 
|  | 85 | +#### Documentation Improvements | 
|  | 86 | + | 
|  | 87 | +- **Updated Feature Matrix**: TODO.md reflects new v0.6.0 capabilities | 
|  | 88 | +- **Comprehensive Specs**: Detailed test specifications for all new features | 
|  | 89 | +- **Release Process**: Improved versioning and release management | 
|  | 90 | + | 
|  | 91 | +### Technical Details | 
|  | 92 | + | 
|  | 93 | +#### Compiler Integration | 
|  | 94 | + | 
|  | 95 | +- **TypeScript Compatibility**: Leverages TypeScript compiler's numeric separator parsing | 
|  | 96 | +- **C++20 Standards**: All generated code compatible with modern C++ standards | 
|  | 97 | +- **Math Library Integration**: Automatic `<cmath>` inclusion for mathematical operations | 
|  | 98 | + | 
|  | 99 | +#### Performance Optimizations | 
|  | 100 | + | 
|  | 101 | +- **Efficient Array Operations**: Spread operations use vector-based concatenation | 
|  | 102 | +- **Minimal Memory Overhead**: Slice operations create efficient sub-arrays | 
|  | 103 | +- **Smart Include Management**: Only necessary headers are included | 
|  | 104 | + | 
|  | 105 | +### Backward Compatibility | 
|  | 106 | + | 
|  | 107 | +All existing functionality remains fully compatible. New features are additive and do not break existing transpiled code. | 
|  | 108 | + | 
|  | 109 | +### Migration Notes | 
|  | 110 | + | 
|  | 111 | +No migration required for existing projects. New features are automatically available when upgrading to v0.6.0. | 
|  | 112 | + | 
|  | 113 | +### Known Limitations | 
|  | 114 | + | 
|  | 115 | +- **Function Call Spread Arguments**: `func(...args)` pattern not yet fully implemented | 
|  | 116 | +- **BigInt Literals**: `123n` syntax support pending for future releases | 
|  | 117 | + | 
|  | 118 | +### Contributors | 
|  | 119 | + | 
|  | 120 | +This release was developed with AI assistance using Claude Code, demonstrating the power of AI-assisted software development. | 
|  | 121 | + | 
|  | 122 | +--- | 
|  | 123 | + | 
|  | 124 | +**Full Changelog**: See [CHANGELOG.md](./CHANGELOG.md) for detailed commit history. | 
|  | 125 | + | 
|  | 126 | +**Previous Release**: [v0.5.3](./RELEASE_NOTES_v0.5.x.md) | 
0 commit comments