diff --git a/final/test/arrow-function/ArrowFunctionExpression.test.js b/final/test/arrow-function/ArrowFunctionExpression.test.js index c81e571..0b04e57 100644 --- a/final/test/arrow-function/ArrowFunctionExpression.test.js +++ b/final/test/arrow-function/ArrowFunctionExpression.test.js @@ -1,9 +1,9 @@ -const test = require('ava'); -const { Scope, customEval } = require('../../eval'); +const test = require("ava"); +const { Scope, customEval } = require("../../eval"); -test("ArrowFunctionExpression-1", t => { +test("ArrowFunctionExpression-1", (t) => { const scope = new Scope({ - name: "world" + name: "world", }); const func = customEval( @@ -22,7 +22,7 @@ module.exports = func; t.deepEqual(func(), "hello world"); }); -test("ArrowFunctionExpression-2", t => { +test("ArrowFunctionExpression-2", (t) => { const scope = new Scope(); const func = customEval( @@ -36,11 +36,11 @@ module.exports = func; t.true(typeof func === "function"); t.deepEqual(func.length, 0); - t.deepEqual(func.name, ""); + t.deepEqual(func.name, "func"); t.deepEqual(func(), "hello undefined"); }); -test("ArrowFunctionExpression-3", t => { +test("ArrowFunctionExpression-3", (t) => { const scope = new Scope(); const func = customEval( diff --git a/final/test/this/ThisExpression.test.js b/final/test/this/ThisExpression.test.js index efe723c..76e0861 100644 --- a/final/test/this/ThisExpression.test.js +++ b/final/test/this/ThisExpression.test.js @@ -1,7 +1,7 @@ -const test = require('ava'); -const { customEval, Scope } = require('../../eval'); +const test = require("ava"); +const { customEval, Scope } = require("../../eval"); -test("ThisExpression", t => { +test("ThisExpression", (t) => { const scope = new Scope(); const func = customEval( @@ -22,3 +22,24 @@ module.exports = t; t.deepEqual(ctx.name, "hello"); }); + +test("ThisNestExpression", (t) => { + const func = customEval(` + function f(){ + let b = 1; + let a = { + b:2, + c: ()=>{ + if(this) this.b += 1 + }, + d: function() { + if(this) this.b += 1 + } + } + a.d(); + return [a.b , b]; + } + module.exports = f; + `); + t.deepEqual(func(), [3, 1]); +});