mini-v8 0.4.1

A minimal embedded V8 JavaScript engine wrapper for Rust
Documentation
use crate::*;
use std::string::String as StdString;

#[test]
fn set_get() {
    let mv8 = MiniV8::new();

    let array = mv8.create_array();
    array.set(0, 123).unwrap();
    array.set(2, 456).unwrap();
    assert_eq!(array.get::<StdString>(0).unwrap(), "123");
    assert!(array.get::<Value>(1).unwrap().is_undefined());
    assert_eq!(array.get::<StdString>(2).unwrap(), "456");
    assert!(array.get::<Value>(3).unwrap().is_undefined());
}

#[test]
fn len() {
    let mv8 = MiniV8::new();

    let array = mv8.create_array();
    assert_eq!(array.len(), 0);
    array.set(0, 123).unwrap();
    assert_eq!(array.len(), 1);
    array.set(2, 456).unwrap();
    assert_eq!(array.len(), 3);
}

#[test]
fn push() {
    let mv8 = MiniV8::new();

    let array = mv8.create_array();
    array.push(0).unwrap();
    array.push(1).unwrap();
    array.set(3, 3).unwrap();
    array.push(4).unwrap();
    assert_eq!(array.get::<usize>(0).unwrap(), 0);
    assert_eq!(array.get::<usize>(1).unwrap(), 1);
    assert!(array.get::<Value>(2).unwrap().is_undefined());
    assert_eq!(array.get::<usize>(3).unwrap(), 3);
    assert_eq!(array.get::<usize>(4).unwrap(), 4);
    assert_eq!(array.len(), 5);
}

#[test]
fn elements() {
    let mv8 = MiniV8::new();

    let array = mv8.create_array();
    array.push(0).unwrap();
    array.push(1).unwrap();
    array.set(3, 3).unwrap();
    array.push(4).unwrap();

    let list: Result<Vec<usize>> = array.elements().collect();
    assert_eq!(list.unwrap(), vec![0, 1, 0, 3, 4]);
}