function defParams(a, b = "default value") { writeVars("a", a, "b", b); } defParams("regular value", "custom value"); defParams("regular value"); write(`1 + 1 = ${1 + 1}`); const thisIsConst = 1; let thisIsLet = 2; writeVars("thisIsConst", thisIsConst, "thisIsLet", thisIsLet); var regularString = "a\ b\ c"; var templateString = `a\ b\ c`; writeVars("regularString", regularString); writeVars("templateString", templateString); var obj = { a: 1, b: 2, c: 3, d: { e: 4 } }; var { a } = obj; var { b, c } = obj; var { d: { e } } = obj; writeVars("a", a, "b", b, "c", c, "e", e); var arr = [ 1, 2, 3, 4 ]; var [ x, , y ] = arr; writeVars("x", x, "y", y); var a = 1; var b = 2; var [c, d] = [a, b]; [b, a] = [a, b]; writeVars("a", a, "b", b, "c", c, "d", d); function fun({a, b}) { writeVars("a", a, "b", b); } var obj = { a: 1, b: 2 }; fun(obj); var someVar = 1; var obj = { regular: 2, someVar, someMethod() { writeVars("someVar", this.someVar, "aaa", this.aaa); }, ['a' + 'a' + 'a']: 3 } obj.someMethod(); var arrowFunction1 = (param) => { writeVars("param", param); }; var arrowFunction2 = (param) => arrowFunction1(param); arrowFunction2(123); var promise = new Promise(function (resolve, reject) { resolve('hooray!'); }); promise.then(function (res) { // Promise will be resolved asynchronously, // so it's resolve moment can't be captured by test runner. console.log('Promise works!'); }); class SomeClass { constructor(param) { this.value = param; } getValue() { return this.value; } } class AnotherClass extends SomeClass { constructor(param) { super(param); } } var instance = new AnotherClass('initial value'); writeVars("value", instance.getValue()); function* gen(a) { let i = 1; while (i < a) { yield i++; } return i; } const iter = gen(5); let iterObj = null; while (!iterObj || !iterObj.done) { iterObj = iter.next(); writeVars("i", iterObj.value); } var arr = [1, 2, 3, 4]; for(var i of arr) { writeVars("i", i); } function fun(a, ...b) { writeVars("a", a, "b", b); } fun(1, 2, 3, 4); var arr1 = [2, 3, 4]; var arr2 = [1, ...arr1]; writeVars("arr2", arr2); function fun(a, b, c, d) { writeVars("a", a, "b", b, "c", c, "d", d); } fun(...arr2);