nodejs motor jugo juegos google engine javascript node.js google-chrome v8

javascript - motor - v8 jugo



Acceder al número de línea en JavaScript V8(Chrome y Node.js) (1)

Los desarrolladores de JavaScript que han pasado tiempo en lenguajes como C a menudo pierden la capacidad de utilizar ciertos tipos de introspección, como números de líneas de registro y de qué método se invocó el método actual. Bueno, si estás usando V8 (Chrome, Node.js) puedes emplear lo siguiente.


Object.defineProperty(global, ''__stack'', { get: function(){ var orig = Error.prepareStackTrace; Error.prepareStackTrace = function(_, stack){ return stack; }; var err = new Error; Error.captureStackTrace(err, arguments.callee); var stack = err.stack; Error.prepareStackTrace = orig; return stack; } }); Object.defineProperty(global, ''__line'', { get: function(){ return __stack[1].getLineNumber(); } }); console.log(__line);

Lo anterior registrará 19 .

Combinado con arguments.callee.caller puede acercarse al tipo de registro útil que obtiene en C a través de macros.