| var assert = function (result, expected, message) { |
| if (result !== expected) { |
| throw new Error('Error in assert. Expected "' + expected + '" but was "' + result + '":' + message ); |
| } |
| }; |
| |
| var assertThrow = function (cb, expected) { |
| let error = null; |
| try { |
| cb(); |
| } catch(e) { |
| error = e; |
| } |
| if (error === null) { |
| throw new Error('Error is expected. Expected "' + expected + '" but error was not thrown."'); |
| } |
| if (error.toString() !== expected) { |
| throw new Error('Error is expected. Expected "' + expected + '" but error was "' + error + '"'); |
| } |
| }; |
| |
| var foo = 'foo'; |
| var success = false; |
| // FIXME: According to spec foo should have value 'undefined', |
| // but possible it would be changed https://github.com/tc39/ecma262/issues/753 |
| eval("success = foo === 'foo'; { function foo(){} }"); |
| |
| assert(success, true); |
| |
| success = false; |
| |
| let boo = 'boo'; |
| eval("success = boo === 'boo'; { function boo(){} } success = success && boo === 'boo';"); |
| |
| success = success && boo === 'boo'; |
| |
| assert(success, true); |