diff --git a/sandboxedModule/ru/application.js b/sandboxedModule/ru/application.js index b66eff8..01b5dd7 100644 --- a/sandboxedModule/ru/application.js +++ b/sandboxedModule/ru/application.js @@ -1,11 +1,38 @@ // Файл содержит маленький кусочек основного модуля демонстрационного // прикладного приложения, загружаемого в песочницу демонстрационным // кусочком фреймворка. Читайте README.md в нем задания. +// Пример использования require +require('path'); // Вывод из глобального контекста модуля -console.log('From application global context'); +console.log('From application global context\n'); -module.exports = function() { - // Вывод из контекста экспортируемой функции - console.log('From application exported function'); +//Task 1 +setTimeout(()=>console.log('Timeout using(after 1s) (task 1)\n'), 1000); + +//Task 2 +console.log(util.format('We use %s.%s', 'util', 'format\n')); + +//Task 7 +function func1(){}; +function func2(a, b){return a + b;}; +var num = 1; +var str = 'abc'; +var bool = true; +var obj = {}; + +var one_more_var = 123; + +module.exports = { + func1: func1, + func2: func2, + num: num, + str: str, + bool: bool, + obj: obj }; + +console.log('global context of application(task 9):\n'); +for (var k in global) { + console.log(k + " - " + typeof global[k]); +} diff --git a/sandboxedModule/ru/framework.js b/sandboxedModule/ru/framework.js index 03a0e99..0ff511e 100644 --- a/sandboxedModule/ru/framework.js +++ b/sandboxedModule/ru/framework.js @@ -5,22 +5,136 @@ // Фреймворк может явно зависеть от библиотек через dependency lookup var fs = require('fs'), - vm = require('vm'); + vm = require('vm'), + util = require('util'); + + +// Читаем исходный код приложения из файла +var fileName = process.argv[2] || './application.js'; +var outputFile = 'output.txt'; +var outputFile_require = 'require_output.txt'; + +function createClone(dest, src) { + if (!dest || !src || typeof dest != 'object' || typeof src != 'object') { + return; + } + for (key in src) { + dest[key] = src[key]; + } +} + +var myConsole = {}; +createClone(myConsole, console); + +// прибавляет к строке