En una demostración poco convencional de la mecánica interna de JavaScript, el desarrollador Bartosz ha compartido un método para invocar funciones arbitrarias sin utilizar los paréntesis estándar. La técnica se basa en manipular la forma en que el motor maneja las trazas de error. Específicamente, implica sobrescribir la función `Error.prepareStackTrace` —una API opcional utilizada típicamente por motores como V8 para formatear las trazas de error— y reemplazarla con el constructor `Function`. Esto permite que el sistema trate ciertas estructuras de datos como código ejecutable.
El mecanismo requiere dos pasos adicionales para eludir las restricciones sintácticas típicas. Primero, debido a que una traza de error pura no es código JavaScript válido, el autor utiliza la contaminación de prototipos (específicamente dirigida a `Object.prototype.message`) combinada con una sobreescritura de `Array.prototype.toString`. Al apuntar la representación de cadena del arreglo al método `Error.prototype.toString`, la carga útil puede convertir con éxito un arreglo de posiciones en el script deseado. Finalmente, el objeto resultante se ejecuta utilizando el 'truco de valueOf', donde sobrescribir el método `valueOf` predeterminado de un objeto permite que sea invocado como un primitivo a través de operadores de suma.
Aunque es técnicamente impresionante, este enfoque enfrenta limitaciones prácticas en cuanto a la compatibilidad entre navegadores y la legibilidad. Los comentaristas señalaron que, dado que `Error.prepareStackTrace` es una API opcional implementada principalmente en V8, el hack podría fallar en otros entornos como Firefox. Además, mientras algunos sugirieron su uso para la ofuscación o como una prueba de fuego para la revisión por pares, otros señalaron que características estándar como `Symbol.iterator` ya proporcionan formas legítimas de activar lógica sin paréntesis. La complejidad de la carga útil final resalta la extrema flexibilidad —y el potencial de oscuridad— inherente al modelo de objetos subyacente del lenguaje.
