After 4 years of Alpha and Beta stages, the project is stable and performant enough to finally be released as version 1.0 and with that, we decided to give it a new name:
brs-engine - BrightScript Simulation Engine
The term simulation engine was chosen instead of the former emulator to better represent the nature and purpose of the project, as there is no intention to fully emulate a Roku device (OS and Hardware), but rather simulate the behavior, as a development tool and as an engine/framework to run BrightScript apps in different platforms.
In this release the new CLI was introduced, still with some limitations (e.g. no OffScreenCanvas
support), but allowing basic BrightScript code to be executed, either via REPL or files. It also performs the encryption of a .zip
file into a .bpk
package to protect the source code.
Release Changes
- Renamed package to
brs-engine
- Renamed libraries to
brs.api.js
andbrs.worker.js
- Reorganized
src
folder by library, subfolders:api
,cli
andworker
- Added new CLI with REPL (
bin/brs.cli.js
) (#181) - Added support for Conditional Compilation (#93)
- Added support for
webp
file format inroBitmap
(#166) - Added support for interfaces
ifGetArray
andifSetArray
(#170) - Added support for
.bpk
encrypted package file (#188) - Added support optional chaining operators:
?.
,?(
,?[
, and.@
(#176) - Moved
models
list to API library and updatedserialNumber
format - Added new API event
registry
- Added check for
break
debug command during theroMessagePort
loop - Added code to pause sound when Micro Debugger is triggered (does not affect wav)
- Added option to stop on Micro Debugger when a crash happens (#198)
- Added partial try/catch implementation (#195)
- Improved error handling and added warning for RSG usage
- Added stub
roAppMemoryMonitor
androDeviceInfo.enableLowGeneralMemory
(#196) - Added new method
getAllPurchases
and changeddoOrder
to returnfalse
(#178) - Added
formatLocation
method in the Interpreter to help show location in warning messages - Added Bundle Stats Analyzer and replaced dependencies to reduce package size
- Updated default firmware to 11.0 and added new models to the list
- Updated images and layout of sample Web application
- Updated
roDateTime.GetTimeZoneOffset()
to considerroDeviceInfo.GetTimeZone()
(#94) - Finished implementation of
ifEnum
on all array/list objects (#171) - Fixed multiple cascading calls for dot-chained methods (#55)
- Fixed
roRegion
offset not being properly applied whensetWrap
wastrue
(#194) - Fixed
Val()
function not compliant with Roku (#162) - Fixed duplication of exception handling messages (#126)
- Fixed code smells and bugs based on Sonar Cloud recommendations (#169)
- Replaced
luxon
byday.js
onroDateTime
androTimespan
(#193) - Replaced module
jszip
by the lighterfflate
- Removing
ua-parser-js
dependency for the API - Bumped version of several dependencies
- Removed Node 14.x from the build (#182)
Full Changelog: v0.10.22...v1.0.0