Cuando depuro mi aplicación y la configuro en un punto de interrupción en todas las excepciones, se detiene en la línea 3 en bluebirds async.js ( enlace )
{throw new Error(); } catch (e) {firstLineError = e;}Esa línea me parece un poco extraña.
¿Cuál es el propósito de esto?
Gracias
Supongo que está ahí para obtener el objeto de error de la primera línea para tener información sobre nombres de archivos, rutas y números de línea porque cosas como esta se pueden usar para eso. Pero tendría que mirar el código fuente. Ciertamente parece interesante.
Esto se usa en src/debuggability.js en la función setBounds() :
que se llama en esta cadena que contiene JavaScript que presumiblemente se eval en alguna parte:
Esta cadena se almacena en una variable llamada lastLineCode . Parece que todo esto establece un margen para la depuración para asegurarse de que lo que se depura está entre la primera y la última línea de la parte relevante del código fuente de Bluebird, por ejemplo, cuando se combina con otros módulos.
Puede ver algunas de esas confirmaciones para obtener más contexto de cómo se agregó: