Skip to content
/ jsi Public

JSI is a JavaScript interpreter written in Rust that supports bytecode similar to quickjs.

Notifications You must be signed in to change notification settings

echosoar/jsi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSI

JSI is a JavaScript interpreter written in Rust that supports bytecode similar to quickjs.

test262 passed

test262 total


Usage

use jsi::JSI;

let mut jsi = JSI::new();

// Run with ast
let result = jsi.run(String::from("\
  let a = [];
  let i = 0;
  outer:
  while(i < 3) {
    i ++;
    let j = 0;
    while(j < 5) {
      j ++;
      if (j == 1 && i == 1) {
        continue outer
      }
      if (j == 4) break
      if (j == 3 && i == 2) {
        break outer
      }
      a.push(i * j);
    }
  }
  a.join(':')")
).unwrap();
assert_eq!(result , Value::String(String::from("2:4")));

// Run with bytecode
let result2 = jsi.run_with_bytecode(String::from("\
  let a = '123';
  let b = 'abc';
  a + b
  ")).unwrap();
assert_eq!(result , Value::String(String::from("123abc")));

Development

  • git submodule git submodule update --init --recursive
  • test262 RUST_MIN_STACK=8388608 cargo test --package jsi --test test262_test -- test_all_262 --exact --nocapture

Refs

License

MIT


by echosoar

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy