UNPKG

shift-interpreter

Version:

Shift-interpreter is an experimental JavaScript meta-interpreter useful for reverse engineering and analysis. One notable difference from other projects is that shift-interpreter retains state over an entire script but can be fed expressions and statement

43 lines 1.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = __importDefault(require("chai")); const chai_spies_1 = __importDefault(require("chai-spies")); const util_1 = require("../util"); chai_1.default.use(chai_spies_1.default); describe('this', () => { it('should refer to local context', () => { const context = { global: {}, console }; context.global = context; util_1.assertResult(util_1.compare(` const c = { a : function() {return this.b}, b : "Hello" } c.a(); `)); }); it('should support dynamic context', () => { const context = { global: {}, console }; context.global = context; util_1.assertResult(util_1.compare(` const outer = { inner: { innerFn() { return this.b }, b: "innerValue" }, outerFn() { this.extracted = this.inner.innerFn; return this.extracted(); }, b : "outerValue" } outer.outerFn(); `)); }); }); //# sourceMappingURL=this.test.js.map