https://github.com/codelibs/sai
JavaScript engine developed in the Java programming language
https://github.com/codelibs/sai
Last synced: 2 months ago
JSON representation
JavaScript engine developed in the Java programming language
- Host: GitHub
- URL: https://github.com/codelibs/sai
- Owner: codelibs
- License: gpl-2.0
- Created: 2019-01-26T13:36:11.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-19T03:23:44.000Z (about 5 years ago)
- Last Synced: 2025-01-28T10:36:18.419Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 4.53 MB
- Stars: 3
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CodeLibs Sai
[](https://github.com/codelibs/sai/actions/workflows/gradle.yml)
=============
Sai is a runtime environment for programs written in ECMAScript 5.1 that runs on top of JVM.
This project forked from Nashorn.
## Features
- ECMAScript 5.1 implementation
- Runs on JVM (Java 21+)
- JSR-223 Script Engine API support
- High performance bytecode generation using ASM library
## Usage
### Maven
JAR file is available in Maven repository.
Add the following dependency to your pom.xml:
```xml
org.codelibs
sai
0.3.0-SNAPSHOT
```
### Gradle
Add the following dependency to your build.gradle:
```gradle
dependencies {
implementation 'org.codelibs:sai:0.3.0-SNAPSHOT'
}
```
Or in build.gradle.kts:
```kotlin
dependencies {
implementation("org.codelibs:sai:0.3.0-SNAPSHOT")
}
```
## Build
### Requirements
- Java 21 or later
- Gradle 8.x (included via wrapper)
### Build Commands
```bash
# Full build (compile, test, javadoc, jar)
./gradlew build
# Clean build artifacts
./gradlew clean
# Create JAR only
./gradlew jar
# Run tests
./gradlew test
# Run tests in optimistic mode
./gradlew testOptimistic
# Run tests in pessimistic mode
./gradlew testPessimistic
# Generate Javadoc
./gradlew javadoc
# Generate API Javadoc only
./gradlew javadocApi
```
### Running JavaScript
```bash
# Run a sample JavaScript file
./gradlew run
# Debug mode with code inspection
./gradlew debug
```
### Testing
```bash
# Run all tests
./gradlew test
# Run test262 ECMAScript compliance tests
./gradlew test262
# Run test262 in parallel
./gradlew test262Parallel
# Download external test suites
./gradlew downloadExternals
```
## Build Output
After building, you'll find the following artifacts in `build/libs/`:
- `sai-X.X.X.jar` - Main JAR file
- `sai-X.X.X-sources.jar` - Source code JAR
- `sai-X.X.X-javadoc.jar` - Javadoc JAR