UFO ET IT

V8 JavaScript (Chrome 및 Node.js)에서 줄 번호에 액세스

ufoet 2020. 12. 12. 11:53
반응형

V8 JavaScript (Chrome 및 Node.js)에서 줄 번호에 액세스


C와 같은 언어로 시간을 보낸 JavaScript 개발자는 줄 번호 로깅 및 현재 메서드가 호출 된 메서드와 같은 특정 유형의 내부 검사를 사용하는 기능을 놓치는 경우가 많습니다. V8 (Chrome, Node.js)을 사용하는 경우 다음을 사용할 수 있습니다.


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);

위의 내용이 기록 19됩니다.

함께 결합 arguments.callee.caller하면 매크로를 통해 C에서 얻을 수있는 유용한 로깅 유형에 더 가까워 질 수 있습니다.

참고 URL : https://stackoverflow.com/questions/11386492/accessing-line-number-in-v8-javascript-chrome-node-js

반응형