|
|
@ -1,5 +1,24 @@ |
|
|
|
use crate::{builtins::Value, exec, exec::Interpreter, forward, realm::Realm}; |
|
|
|
use crate::{builtins::Value, exec, exec::Interpreter, forward, realm::Realm}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
|
|
|
fn function_declaration_returns_undefined() { |
|
|
|
|
|
|
|
let scenario = r#" |
|
|
|
|
|
|
|
function abc() {} |
|
|
|
|
|
|
|
"#; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(&exec(scenario), "undefined"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
|
|
|
fn empty_var_decl_undefined() { |
|
|
|
|
|
|
|
let scenario = r#" |
|
|
|
|
|
|
|
let b; |
|
|
|
|
|
|
|
b === undefined; |
|
|
|
|
|
|
|
"#; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(&exec(scenario), "true"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
#[test] |
|
|
|
fn property_accessor_member_expression_dot_notation_on_string_literal() { |
|
|
|
fn property_accessor_member_expression_dot_notation_on_string_literal() { |
|
|
|
let scenario = r#" |
|
|
|
let scenario = r#" |
|
|
@ -59,16 +78,6 @@ fn semicolon_expression_stop() { |
|
|
|
assert_eq!(&exec(scenario), "1"); |
|
|
|
assert_eq!(&exec(scenario), "1"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
|
|
|
fn empty_var_decl_undefined() { |
|
|
|
|
|
|
|
let scenario = r#" |
|
|
|
|
|
|
|
let b; |
|
|
|
|
|
|
|
b == undefined; |
|
|
|
|
|
|
|
"#; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(&exec(scenario), "true"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
#[test] |
|
|
|
fn object_field_set() { |
|
|
|
fn object_field_set() { |
|
|
|
let scenario = r#" |
|
|
|
let scenario = r#" |
|
|
|