| 563 | |
| 564 | #[test] |
| 565 | fn test_add_variable_and_num() { |
| 566 | let dom = Rc::new(RefCell::new(DomNode::new(DomNodeKind::Document))); |
| 567 | let input = "var foo=42; foo+1".to_string(); |
| 568 | let lexer = JsLexer::new(input); |
| 569 | let mut parser = JsParser::new(lexer); |
| 570 | let ast = parser.parse_ast(); |
| 571 | let mut runtime = JsRuntime::new(dom); |
| 572 | let expected = [None, Some(RuntimeValue::Number(43))]; |
| 573 | let mut i = 0; |
| 574 | |
| 575 | for node in ast.body() { |
| 576 | let result = runtime.eval(&Some(node.clone()), runtime.env.clone()); |
| 577 | assert_eq!(expected[i], result); |
| 578 | i += 1; |
| 579 | } |
| 580 | } |
| 581 | |
| 582 | #[test] |
| 583 | fn test_reassign_variable() { |