не выполняется. В консоли сообщение “undefined has no properties” для строки а=this[“\x65\x76\x61\x6C”];. Хотя по описанию this[“\x65\x76\x61\x6C”] есть функция eval в зашифрованом наборе символов и должна выполняться.
переменная куда записывается значение это кириллическая a, а вызов функции - латинская a.
Даже не спрашивай сколько всего я перепробовал пока это понял. Убедится в разности этих a можно в консоли, скопировав символы из примера и взяв их charCodeAt.
this обязательно использовать? У меня подозрение что type=module выполняет код в строгом режиме, в котором this верхнего уровня (вне функции) вычисляется в udefined. Так же в строгом режиме объявление переменных без var-подобных конструкция не сработает.
Есть вариант использовать глобальную переменную окна (если точно уверен что код будет выполняться в браузере)
<script type="module">
var b=window["\x65\x76\x61\x6C"];
b('alert(100500)');
</script>
Да так работает. Но у меня тут же возникает новая проблема:
<script type="module">
import * as THREE from '../build/three.module.js';
// и так далее - подключение модулей
var b=window["\x65\x76\x61\x6C"];
var string ='var camControls;var clock;clock = new THREE.Clock()';
// и так далее рабочий скрипт в строке
b(string);
</script>
И консоль выдает “THREE is not defined”. Но если:
<script type="module">
import * as THREE from '../build/three.module.js';
var string ='var camControls;var clock;clock = new THREE.Clock()';
eval(string);
</script>