diff --git a/lib/actions.js b/lib/actions.js index 092ecbc..905f538 100644 --- a/lib/actions.js +++ b/lib/actions.js @@ -196,7 +196,7 @@ yate.compile = function(filename) { // ----------------------------------------------------------------------------------------------------------------- // -yate.run = function(yate_filename, data, ext_filename, mode) { +yate.run = function(yate_filename, data, ext_filename, mode, globals) { // Читаем runtime. var js = fs_.readFileSync( path_.join(__dirname, './runtime.js'), 'utf-8' ); @@ -214,9 +214,17 @@ yate.run = function(yate_filename, data, ext_filename, mode) { mode = mode || ''; js += 'yr.run("main", data, "' + mode + '");'; - var result = vm_.runInNewContext(js, { + // Глобальные объекты, доступные во время шаблонизации из external функций. + var sandbox = { console: console - }); + }; + + globals = globals || {}; + for (var objName in globals) { + sandbox[objName] = globals[objName]; + } + + var result = vm_.runInNewContext(js, sandbox); function getData(o) { if (o.filename) {