ESTreeProcessor

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

このスクリプトは単体で利用できません。右のようなメタデータを含むスクリプトから、ライブラリとして読み込まれます: // @require https://update.greasyfork.org/scripts/506614/1441300/ESTreeProcessor.js

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
作者
mapomaticWazeDev
バージョン
2.0.1
作成日
2024/09/03
更新日
2024/09/04
ライセンス
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