UNPKG

vox-core

Version:

Runtime de aplicaciones multiplataforma

61 lines (47 loc) 1.25 kB
var fs= require("fs"); var Register=module.exports= function(){ } Register.extensions= [ ".esp" ] Register.init= function(){ global.Symbol= require("symbol"); global.Symbol.iterator= new Symbol(); var iterator= core.VW.Ecma2015.ArrayIterator; Array.prototype[Symbol.iterator]= function(){ return new iterator(this); } Register.inited=true; } Register.register= function(){ if(!Register.inited){ Register.init(); } if(require.extensions){ for(var i=0;i<Register.extensions.length;i++){ var ext= Register.extensions[i]; require.extensions[ext]= Register.loadFile; } } } Register.loadFile= function(module,filename){ var p=Register.parser; if(!p){ p=Register.parser= new core.org.voxsoftware.Esp.Parser(); } var raw = fs.readFileSync(filename, 'utf8'); raw = (raw.charCodeAt(0) === 0xFEFF) ? raw.substring(1) : raw try{ var answer = p.parse(raw) return module._compile(answer.code, filename); } catch(e){ if(e instanceof core.org.voxsoftware.Esp.ParseException) throw e var er= new core.org.voxsoftware.Esp.ParseException("Error al compilar " + filename + ". " + e.message, e) for(var id in e){ er[id]= e[id] } throw er } }