ESTreeProcessor

Compiles a string containing Javascript to an ESTree object and/or executes an ESTree object in Javascript

Этот скрипт недоступен для установки пользователем. Он является библиотекой, которая подключается к другим скриптам мета-ключом // @require https://updategreasyfork.deno.dev/scripts/506614/1550456/ESTreeProcessor.js

Автор
mapomatic и WazeDev
Версия
2.1.1
Создано
03.09.2024
Обновлено
09.03.2025
Размер
296,4 КБ
Лицензия
GNU GPLv3

This library is intended to be used by userscripts that need to execute arbitrary JS code in string form, but are restricted by CSP unsafe-eval limitations.

This library uses esprima-next (ES2022) behind the scenes to compile ESTree objects.

Example:

var tree = ESTreeProcessor.compile('function test(b) { return b + a; } test(2);');
// tree contains an ESTree object

// Access to environment variables in the execute function is limited to what you pass in the second argument.
// This makes it safer to execute arbitrary strings, but the strings MUST be controlled at their source 
// and/or processed and verified in code to be truly safe.
var result = ESTreeProcessor.execute(tree, { a: 3 });
console.log(result.output);
// logs '5' to the console