From 8cd4f4857fae9af59c8aeceecbcd9aa3508e0954 Mon Sep 17 00:00:00 2001 From: elasmojs <66966290+elasmojs@users.noreply.github.com> Date: Fri, 14 Aug 2020 22:23:44 +0530 Subject: [PATCH 1/4] Added boa examples Added boa examples as per issue #446 --- Cargo.toml | 1 + examples/Cargo.toml | 10 +++++ examples/scripts/calc.js | 14 +++++++ examples/scripts/calctest.js | 9 +++++ examples/scripts/enhancedglobal.js | 11 +++++ examples/scripts/helloworld.js | 1 + examples/src/enhancedglobal.rs | 59 +++++++++++++++++++++++++++ examples/src/loadfile.rs | 29 +++++++++++++ examples/src/loadstring.rs | 21 ++++++++++ examples/src/main.rs | 29 +++++++++++++ examples/src/modulehandler.rs | 65 ++++++++++++++++++++++++++++++ examples/src/returnval.rs | 32 +++++++++++++++ 12 files changed, 281 insertions(+) create mode 100644 examples/Cargo.toml create mode 100644 examples/scripts/calc.js create mode 100644 examples/scripts/calctest.js create mode 100644 examples/scripts/enhancedglobal.js create mode 100644 examples/scripts/helloworld.js create mode 100644 examples/src/enhancedglobal.rs create mode 100644 examples/src/loadfile.rs create mode 100644 examples/src/loadstring.rs create mode 100644 examples/src/main.rs create mode 100644 examples/src/modulehandler.rs create mode 100644 examples/src/returnval.rs diff --git a/Cargo.toml b/Cargo.toml index 6dbd3e939c7..00cd7c86b4b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ members = [ "boa_wasm", "boa_tester", "boa_unicode", + "boa_examples" ] # The release profile, used for `cargo build --release`. diff --git a/examples/Cargo.toml b/examples/Cargo.toml new file mode 100644 index 00000000000..f71562eae44 --- /dev/null +++ b/examples/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "boa-examples" +version = "0.1.0" +authors = ["elasmojs <66966290+elasmojs@users.noreply.github.com>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +Boa = { path = "../boa", features = ["serde"] } \ No newline at end of file diff --git a/examples/scripts/calc.js b/examples/scripts/calc.js new file mode 100644 index 00000000000..edaad6a64b4 --- /dev/null +++ b/examples/scripts/calc.js @@ -0,0 +1,14 @@ +module.exports = { + add: function(a, b){ + return a + b; + }, + subtract: function(a, b){ + return a - b; + }, + multiply: function(a, b){ + return a * b; + }, + divide: function(a, b){ + return a/b; + } +} \ No newline at end of file diff --git a/examples/scripts/calctest.js b/examples/scripts/calctest.js new file mode 100644 index 00000000000..dcb4d7970d3 --- /dev/null +++ b/examples/scripts/calctest.js @@ -0,0 +1,9 @@ + +//load module +let calc = require('./scripts/calc.js'); + +console.log('Using calc module'); +console.log('Add: ' + calc.add(3, 3)); +console.log('Subtract: ' + calc.subtract(3, 3)); +console.log('Multiply: ' + calc.multiply(3, 3)); +console.log('Divide: ' + calc.divide(3, 3)); \ No newline at end of file diff --git a/examples/scripts/enhancedglobal.js b/examples/scripts/enhancedglobal.js new file mode 100644 index 00000000000..8d53f694995 --- /dev/null +++ b/examples/scripts/enhancedglobal.js @@ -0,0 +1,11 @@ +//access custom global variable +console.log("Custom global: " + customstring); + +//call a custom global function with arguments +console.log("Custom function: " + rusty_hello("Boa! Boa!")); + +//access a custom global object and call a member function of that object +let a = 5; +let b = 5; +let result = rusty_obj.add(a, b); +console.log("Custom object: Result from rusty_obj.add() : " + result); \ No newline at end of file diff --git a/examples/scripts/helloworld.js b/examples/scripts/helloworld.js new file mode 100644 index 00000000000..97c29079268 --- /dev/null +++ b/examples/scripts/helloworld.js @@ -0,0 +1 @@ +console.log("Hello World from JS file!"); \ No newline at end of file diff --git a/examples/src/enhancedglobal.rs b/examples/src/enhancedglobal.rs new file mode 100644 index 00000000000..13c2e031150 --- /dev/null +++ b/examples/src/enhancedglobal.rs @@ -0,0 +1,59 @@ +use std::{fs::read_to_string}; + +use boa::{ + exec::Interpreter, + forward, + realm::Realm, + builtins::value::Value, + builtins::value::ResultValue, + builtins::function::Function +}; + +pub fn run(){ + let js_file_path = "./scripts/enhancedglobal.js"; + let buffer = read_to_string(js_file_path); + + if buffer.is_err(){ + println!("Error: {}", buffer.unwrap_err()); + return; + } + + //Creating the execution context + let ctx = Realm::create(); + + //Adding a custom global variable + ctx.global_obj.set_field("customstring", "Hello! I am a custom global variable"); + + //Adding a custom global function + let rfn = Function::builtin(Vec::new(), rusty_hello); + ctx.global_obj.set_field("rusty_hello", Value::from_func(rfn)); + + //Adding s custom object + let gobj = Value::new_object(Some(&ctx.global_obj)); + let addfn = Function::builtin(Vec::new(), add); + gobj.set_field("add", Value::from_func(addfn)); + ctx.global_obj.set_field("rusty_obj", gobj); + + //Instantiating the engien with the execution context + let mut engine = Interpreter::new(ctx); + + //Loading, parsing and executing the JS code from the source file + let error_string = forward(&mut engine, &buffer.unwrap()); + if error_string != "undefined"{ + println!("Error parsing script: {}", error_string); + } +} + +//Custom function callable from JS +fn rusty_hello(_:&Value, args:&[Value], _:&mut Interpreter) -> ResultValue{ + let arg = args.get(0).unwrap(); + let val = format!("Hello from Rust! You passed {}", arg); + return ResultValue::from(Ok(Value::from(val))); +} + +//Function appended as property of a custom global object, callable from JS +fn add(_:&Value, args:&[Value], _engine:&mut Interpreter) -> ResultValue{ + let arg0 = args.get(0).unwrap(); + let arg1 = args.get(1).unwrap(); + return ResultValue::from(Ok(Value::from(arg0.to_integer() + arg1.to_integer()))); +} \ No newline at end of file diff --git a/examples/src/loadfile.rs b/examples/src/loadfile.rs new file mode 100644 index 00000000000..6a53302b7cf --- /dev/null +++ b/examples/src/loadfile.rs @@ -0,0 +1,29 @@ +use std::{fs::read_to_string}; + +use boa::{ + exec::Interpreter, + forward, + realm::Realm +}; + +pub fn run(){ + let js_file_path = "./scripts/helloworld.js"; + let buffer = read_to_string(js_file_path); + + if buffer.is_err(){ + println!("Error: {}", buffer.unwrap_err()); + return; + } + + //Create the execution context + let ctx = Realm::create(); + + //Instantiate the engien with the execution context + let mut engine = Interpreter::new(ctx); + + //Load, parse and execute the JS code read from the source file + let error_string = forward(&mut engine, &buffer.unwrap()); + if error_string != "undefined"{ + println!("Error parsing script: {}", error_string); + } +} \ No newline at end of file diff --git a/examples/src/loadstring.rs b/examples/src/loadstring.rs new file mode 100644 index 00000000000..aeee8ded839 --- /dev/null +++ b/examples/src/loadstring.rs @@ -0,0 +1,21 @@ +use boa::{ + exec::Interpreter, + forward, + realm::Realm +}; + +pub fn run(){ + let js_code = "console.log('Hello World from a JS code string!')"; + + //Create the execution context + let ctx = Realm::create(); + + //Instantiate the engien with the execution context + let mut engine = Interpreter::new(ctx); + + //Load, parse and execute the given JS String + let error_string = forward(&mut engine, js_code); + if error_string != "undefined"{ + println!("Error parsing script: {}", error_string); + } +} \ No newline at end of file diff --git a/examples/src/main.rs b/examples/src/main.rs new file mode 100644 index 00000000000..bff68875582 --- /dev/null +++ b/examples/src/main.rs @@ -0,0 +1,29 @@ +mod loadstring; +mod loadfile; +mod returnval; +mod enhancedglobal; +mod modulehandler; + +fn main() { + println!("\r\n"); + + //example that loads, parses and executs a JS code string + loadstring::run(); + println!("\r\n"); + + //example that loads, parses and executs JS code from a source file (./scripts/helloworld.js) + loadfile::run(); + println!("\r\n"); + + //example that loads, parses and executs JS code and uses the return value + returnval::run(); + println!("\r\n"); + + //example that enhances the global object with custom values, objects, functions + enhancedglobal::run(); + println!("\r\n"); + + //example that implements a custom module handler which mimics (require / module.exports) pattern + modulehandler::run(); + println!("\r\n"); +} diff --git a/examples/src/modulehandler.rs b/examples/src/modulehandler.rs new file mode 100644 index 00000000000..4ac1aa11e8a --- /dev/null +++ b/examples/src/modulehandler.rs @@ -0,0 +1,65 @@ +use std::fs::read_to_string; + +use boa::{ + exec::Interpreter, + forward, + realm::Realm, + builtins::value::Value, + builtins::value::ResultValue, + builtins::function::Function +}; + +pub fn run(){ + let js_file_path = "./scripts/calctest.js"; + let buffer = read_to_string(js_file_path); + + if buffer.is_err(){ + println!("Error: {}", buffer.unwrap_err()); + return; + } + + //Creating the execution context + let ctx = Realm::create(); + + //Adding custom implementation that mimics 'require' + let requirefn = Function::builtin(Vec::new(), require); + ctx.global_obj.set_field("require", Value::from_func(requirefn)); + + //Addming custom object that mimics 'module.exports' + let moduleobj = Value::new_object(Some(&ctx.global_obj)); + moduleobj.set_field("exports", Value::from(" ")); + ctx.global_obj.set_field("module", moduleobj); + + //Instantiating the engien with the execution context + let mut engine = Interpreter::new(ctx); + + //Loading, parsing and executing the JS code from the source file + let error_string = forward(&mut engine, &buffer.unwrap()); + if error_string != "undefined"{ + println!("Error parsing script: {}", error_string); + } +} + +//Custom implementation that mimics 'require' module loader +fn require(_:&Value, args:&[Value], engine:&mut Interpreter) -> ResultValue{ + let arg = args.get(0).unwrap(); + + //BUG: Dev branch seems to be passing string arguments along with quotes + let libfile = arg.to_string().replace("\"", ""); + + //Read the module source file + println!("Loading: {}", libfile); + let buffer = read_to_string(libfile); + if buffer.is_err(){ + println!("Error: {}", buffer.unwrap_err()); + return ResultValue::from(Ok(Value::from(-1))); + }else{ + //Load and parse the module source + forward(engine, &buffer.unwrap()); + + //Access module.exports and return as ResultValue + let module_exports = engine.realm.global_obj.get_field("module").get_field("exports"); + let return_value = ResultValue::from(Ok(Value::from(module_exports))); + return return_value; + } +} \ No newline at end of file diff --git a/examples/src/returnval.rs b/examples/src/returnval.rs new file mode 100644 index 00000000000..8acec9b9f24 --- /dev/null +++ b/examples/src/returnval.rs @@ -0,0 +1,32 @@ +use boa::{ + exec::Interpreter, + forward_val, + realm::Realm +}; + +pub fn run(){ + let js_string = r" + function add(a, b){ + return a + b; + } + let a = 3; + let b = 3; + add(a,b); + "; + + //Create the execution context + let ctx = Realm::create(); + + //Instantiate the engien with the execution context + let mut engine = Interpreter::new(ctx); + + //Load, parse, execute the given JS String and returns the result of the execution as a Boa Value + match forward_val(&mut engine, js_string){ + Ok(v) => { + println!("Script returned: {}", v); + }, + Err(e) =>{ + println!("Script error: {}", e); + } + } +} \ No newline at end of file From 42d757eed8d7a86094f5a6e21c56b0e7137ac9e5 Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Mon, 5 Apr 2021 15:35:13 +0100 Subject: [PATCH 2/4] updating details and aligning with other crates --- Cargo.toml | 2 +- examples/Cargo.toml | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 00cd7c86b4b..049e7daad8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ members = [ "boa_wasm", "boa_tester", "boa_unicode", - "boa_examples" + "boa_examples", ] # The release profile, used for `cargo build --release`. diff --git a/examples/Cargo.toml b/examples/Cargo.toml index f71562eae44..b7a6235f4a7 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -1,10 +1,12 @@ [package] -name = "boa-examples" -version = "0.1.0" -authors = ["elasmojs <66966290+elasmojs@users.noreply.github.com>"] +name = "boa_examples" +version = "0.11.0" +authors = ["boa-dev"] +repository = "https://github.com/boa-dev/boa" +license = "Unlicense/MIT" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -Boa = { path = "../boa", features = ["serde"] } \ No newline at end of file +Boa = { path = "../boa", features = ["serde"] } From ef68419f561999e9565d34aa06f7cb453c4b914f Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Mon, 5 Apr 2021 15:41:44 +0100 Subject: [PATCH 3/4] * idiomatic rust * spelling mistake * Rust FMT --- examples/src/loadfile.rs | 18 +++++++---------- examples/src/modulehandler.rs | 37 ++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/examples/src/loadfile.rs b/examples/src/loadfile.rs index 6a53302b7cf..73e70fe3ca6 100644 --- a/examples/src/loadfile.rs +++ b/examples/src/loadfile.rs @@ -1,17 +1,13 @@ -use std::{fs::read_to_string}; +use std::fs::read_to_string; -use boa::{ - exec::Interpreter, - forward, - realm::Realm -}; +use boa::{exec::Interpreter, forward, realm::Realm}; -pub fn run(){ +pub fn run() { let js_file_path = "./scripts/helloworld.js"; let buffer = read_to_string(js_file_path); - if buffer.is_err(){ - println!("Error: {}", buffer.unwrap_err()); + if let Err(msg) = buffer { + println!("Error: {}", msg); return; } @@ -23,7 +19,7 @@ pub fn run(){ //Load, parse and execute the JS code read from the source file let error_string = forward(&mut engine, &buffer.unwrap()); - if error_string != "undefined"{ + if error_string != "undefined" { println!("Error parsing script: {}", error_string); } -} \ No newline at end of file +} diff --git a/examples/src/modulehandler.rs b/examples/src/modulehandler.rs index 4ac1aa11e8a..292854ff972 100644 --- a/examples/src/modulehandler.rs +++ b/examples/src/modulehandler.rs @@ -1,19 +1,15 @@ use std::fs::read_to_string; use boa::{ - exec::Interpreter, - forward, - realm::Realm, - builtins::value::Value, - builtins::value::ResultValue, - builtins::function::Function + builtins::function::Function, builtins::value::ResultValue, builtins::value::Value, + exec::Interpreter, forward, realm::Realm, }; -pub fn run(){ +pub fn run() { let js_file_path = "./scripts/calctest.js"; let buffer = read_to_string(js_file_path); - if buffer.is_err(){ + if buffer.is_err() { println!("Error: {}", buffer.unwrap_err()); return; } @@ -23,43 +19,48 @@ pub fn run(){ //Adding custom implementation that mimics 'require' let requirefn = Function::builtin(Vec::new(), require); - ctx.global_obj.set_field("require", Value::from_func(requirefn)); + ctx.global_obj + .set_field("require", Value::from_func(requirefn)); //Addming custom object that mimics 'module.exports' let moduleobj = Value::new_object(Some(&ctx.global_obj)); moduleobj.set_field("exports", Value::from(" ")); ctx.global_obj.set_field("module", moduleobj); - //Instantiating the engien with the execution context + //Instantiating the engine with the execution context let mut engine = Interpreter::new(ctx); //Loading, parsing and executing the JS code from the source file let error_string = forward(&mut engine, &buffer.unwrap()); - if error_string != "undefined"{ + if error_string != "undefined" { println!("Error parsing script: {}", error_string); } } //Custom implementation that mimics 'require' module loader -fn require(_:&Value, args:&[Value], engine:&mut Interpreter) -> ResultValue{ +fn require(_: &Value, args: &[Value], engine: &mut Interpreter) -> ResultValue { let arg = args.get(0).unwrap(); - + //BUG: Dev branch seems to be passing string arguments along with quotes let libfile = arg.to_string().replace("\"", ""); - + //Read the module source file println!("Loading: {}", libfile); let buffer = read_to_string(libfile); - if buffer.is_err(){ + if buffer.is_err() { println!("Error: {}", buffer.unwrap_err()); return ResultValue::from(Ok(Value::from(-1))); - }else{ + } else { //Load and parse the module source forward(engine, &buffer.unwrap()); //Access module.exports and return as ResultValue - let module_exports = engine.realm.global_obj.get_field("module").get_field("exports"); + let module_exports = engine + .realm + .global_obj + .get_field("module") + .get_field("exports"); let return_value = ResultValue::from(Ok(Value::from(module_exports))); return return_value; } -} \ No newline at end of file +} From 6b3c2356d316699ce1ec25bed6bcf445ae265f91 Mon Sep 17 00:00:00 2001 From: "Iban Eguia (Razican)" Date: Sat, 22 May 2021 19:18:27 +0200 Subject: [PATCH 4/4] Updated some code --- Cargo.lock | 7 ++++ {examples => boa_examples}/Cargo.toml | 2 +- {examples => boa_examples}/scripts/calc.js | 0 .../scripts/calctest.js | 0 .../scripts/enhancedglobal.js | 0 .../scripts/helloworld.js | 0 .../src/enhancedglobal.rs | 0 boa_examples/src/loadfile.rs | 38 +++++++++++++++++++ boa_examples/src/loadstring.rs | 31 +++++++++++++++ {examples => boa_examples}/src/main.rs | 0 .../src/modulehandler.rs | 0 examples/src/loadfile.rs | 25 ------------ examples/src/loadstring.rs | 21 ---------- examples/src/returnval.rs | 32 ---------------- 14 files changed, 77 insertions(+), 79 deletions(-) rename {examples => boa_examples}/Cargo.toml (85%) rename {examples => boa_examples}/scripts/calc.js (100%) rename {examples => boa_examples}/scripts/calctest.js (100%) rename {examples => boa_examples}/scripts/enhancedglobal.js (100%) rename {examples => boa_examples}/scripts/helloworld.js (100%) rename {examples => boa_examples}/src/enhancedglobal.rs (100%) create mode 100644 boa_examples/src/loadfile.rs create mode 100644 boa_examples/src/loadstring.rs rename {examples => boa_examples}/src/main.rs (100%) rename {examples => boa_examples}/src/modulehandler.rs (100%) delete mode 100644 examples/src/loadfile.rs delete mode 100644 examples/src/loadstring.rs delete mode 100644 examples/src/returnval.rs diff --git a/Cargo.lock b/Cargo.lock index 6103bf72c5d..35c14f3ff79 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,6 +91,13 @@ dependencies = [ "structopt", ] +[[package]] +name = "boa_examples" +version = "0.11.0" +dependencies = [ + "Boa", +] + [[package]] name = "boa_tester" version = "0.11.0" diff --git a/examples/Cargo.toml b/boa_examples/Cargo.toml similarity index 85% rename from examples/Cargo.toml rename to boa_examples/Cargo.toml index b7a6235f4a7..527eaba2744 100644 --- a/examples/Cargo.toml +++ b/boa_examples/Cargo.toml @@ -9,4 +9,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -Boa = { path = "../boa", features = ["serde"] } +Boa = { path = "../boa" } diff --git a/examples/scripts/calc.js b/boa_examples/scripts/calc.js similarity index 100% rename from examples/scripts/calc.js rename to boa_examples/scripts/calc.js diff --git a/examples/scripts/calctest.js b/boa_examples/scripts/calctest.js similarity index 100% rename from examples/scripts/calctest.js rename to boa_examples/scripts/calctest.js diff --git a/examples/scripts/enhancedglobal.js b/boa_examples/scripts/enhancedglobal.js similarity index 100% rename from examples/scripts/enhancedglobal.js rename to boa_examples/scripts/enhancedglobal.js diff --git a/examples/scripts/helloworld.js b/boa_examples/scripts/helloworld.js similarity index 100% rename from examples/scripts/helloworld.js rename to boa_examples/scripts/helloworld.js diff --git a/examples/src/enhancedglobal.rs b/boa_examples/src/enhancedglobal.rs similarity index 100% rename from examples/src/enhancedglobal.rs rename to boa_examples/src/enhancedglobal.rs diff --git a/boa_examples/src/loadfile.rs b/boa_examples/src/loadfile.rs new file mode 100644 index 00000000000..bead31613d5 --- /dev/null +++ b/boa_examples/src/loadfile.rs @@ -0,0 +1,38 @@ +use std::fs::read_to_string; + +use boa::{exec::Executable, parse, Context}; + +pub fn run() { + let js_file_path = "./scripts/helloworld.js"; + + match read_to_string(js_file_path) { + Ok(src) => { + // Instantiate the execution context + let mut context = Context::new(); + + // Parse the source code + let expr = match parse(src, false) { + Ok(res) => res, + Err(e) => { + // Pretty print the error + eprintln!( + "Uncaught {}", + context + .throw_syntax_error(e.to_string()) + .expect_err("interpreter.throw_syntax_error() did not return an error") + .display() + ); + + return; + } + }; + + // Execute the JS code read from the source file + match expr.run(&mut context) { + Ok(v) => println!("{}", v.display()), + Err(e) => eprintln!("Uncaught {}", e.display()), + } + } + Err(msg) => eprintln!("Error: {}", msg), + } +} diff --git a/boa_examples/src/loadstring.rs b/boa_examples/src/loadstring.rs new file mode 100644 index 00000000000..17e2d2ddd46 --- /dev/null +++ b/boa_examples/src/loadstring.rs @@ -0,0 +1,31 @@ +use boa::{exec::Executable, parse, Context}; + +pub fn run() { + let js_code = "console.log('Hello World from a JS code string!')"; + + // Instantiate the execution context + let mut context = Context::new(); + + // Parse the source code + let expr = match parse(js_code, false) { + Ok(res) => res, + Err(e) => { + // Pretty print the error + eprintln!( + "Uncaught {}", + context + .throw_syntax_error(e.to_string()) + .expect_err("interpreter.throw_syntax_error() did not return an error") + .display() + ); + + return; + } + }; + + // Execute the JS code read from the source file + match expr.run(&mut context) { + Ok(v) => println!("{}", v.display()), + Err(e) => eprintln!("Uncaught {}", e.display()), + } +} diff --git a/examples/src/main.rs b/boa_examples/src/main.rs similarity index 100% rename from examples/src/main.rs rename to boa_examples/src/main.rs diff --git a/examples/src/modulehandler.rs b/boa_examples/src/modulehandler.rs similarity index 100% rename from examples/src/modulehandler.rs rename to boa_examples/src/modulehandler.rs diff --git a/examples/src/loadfile.rs b/examples/src/loadfile.rs deleted file mode 100644 index 73e70fe3ca6..00000000000 --- a/examples/src/loadfile.rs +++ /dev/null @@ -1,25 +0,0 @@ -use std::fs::read_to_string; - -use boa::{exec::Interpreter, forward, realm::Realm}; - -pub fn run() { - let js_file_path = "./scripts/helloworld.js"; - let buffer = read_to_string(js_file_path); - - if let Err(msg) = buffer { - println!("Error: {}", msg); - return; - } - - //Create the execution context - let ctx = Realm::create(); - - //Instantiate the engien with the execution context - let mut engine = Interpreter::new(ctx); - - //Load, parse and execute the JS code read from the source file - let error_string = forward(&mut engine, &buffer.unwrap()); - if error_string != "undefined" { - println!("Error parsing script: {}", error_string); - } -} diff --git a/examples/src/loadstring.rs b/examples/src/loadstring.rs deleted file mode 100644 index aeee8ded839..00000000000 --- a/examples/src/loadstring.rs +++ /dev/null @@ -1,21 +0,0 @@ -use boa::{ - exec::Interpreter, - forward, - realm::Realm -}; - -pub fn run(){ - let js_code = "console.log('Hello World from a JS code string!')"; - - //Create the execution context - let ctx = Realm::create(); - - //Instantiate the engien with the execution context - let mut engine = Interpreter::new(ctx); - - //Load, parse and execute the given JS String - let error_string = forward(&mut engine, js_code); - if error_string != "undefined"{ - println!("Error parsing script: {}", error_string); - } -} \ No newline at end of file diff --git a/examples/src/returnval.rs b/examples/src/returnval.rs deleted file mode 100644 index 8acec9b9f24..00000000000 --- a/examples/src/returnval.rs +++ /dev/null @@ -1,32 +0,0 @@ -use boa::{ - exec::Interpreter, - forward_val, - realm::Realm -}; - -pub fn run(){ - let js_string = r" - function add(a, b){ - return a + b; - } - let a = 3; - let b = 3; - add(a,b); - "; - - //Create the execution context - let ctx = Realm::create(); - - //Instantiate the engien with the execution context - let mut engine = Interpreter::new(ctx); - - //Load, parse, execute the given JS String and returns the result of the execution as a Boa Value - match forward_val(&mut engine, js_string){ - Ok(v) => { - println!("Script returned: {}", v); - }, - Err(e) =>{ - println!("Script error: {}", e); - } - } -} \ No newline at end of file