为什么没有任何混淆器可以处理我的 Javascript 代码?是因为 ecmascript 吗?
Why isnt any obfuscator working with my Javascript code? Is it because of ecmascript?
我似乎无法混淆,即使它确实被混淆了,它也会停止正常工作并抛出错误。
混淆器在 async/await 处抛出意外标记或错误。
这是代码
class LedgerElement extends HTMLElement {
__columns = [];//obfuscator throws unexpected token error
__footers = [];
__months = [];
constructor() {
super();
this.attachShadow({
mode: 'open'
});
this.shadowRoot.innerHTML = document.querySelector('#tmpLedger').innerHTML;
let parent = this,
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
this.columns = this.getAttribute('cols').split(',');
this.footers = this.getAttribute('fot').split(',');
this.status = this.getAttribute('stats').split(',');
this.months = months;
var d = new Date();
var n = d.getUTCMonth();
this.currentMonth = months[n];
this.shadowRoot.querySelector('#update').addEventListener("click", async function () {
await Promise.all([
getSelectedRows(parent).then((arrList) => {
arrList.forEach(range => getUpdateData(range, parent, "update"))
}),
count = 0,
calculateTotal(parent)
]);
});
for await/*<-obfuscator throws error*/ (let c of parent.querySelectorAll(`bbl-cell[col="8"]`)) {
let balanceCell = parseFloat(parent.querySelector(`bbl-cell[row="${c.row}"][col="9"]`).content);
maxCredit = c.content.length != 0 && c.content == 'YES' ? maxCredit + balanceCell : maxCredit + 0;
}
提前致谢,抱歉我的英语不好。
我猜你可能正在使用不支持 ES6+ 语法的 uglify。用 babel or use terser.
转译它
修复您的代码并将 for await of 循环放入异步函数中,然后将您的代码复制并粘贴到此处:https://try.terser.org/
或者使用带有 es2015、es2016、es2017、stage-0 预设的 babel 的转译输出来提供给 uglify 或你的混淆器:babelified version of your code
还有一些其他项目,如 babel-minify,但 terser 是成熟的项目之一。
我似乎无法混淆,即使它确实被混淆了,它也会停止正常工作并抛出错误。 混淆器在 async/await 处抛出意外标记或错误。 这是代码
class LedgerElement extends HTMLElement {
__columns = [];//obfuscator throws unexpected token error
__footers = [];
__months = [];
constructor() {
super();
this.attachShadow({
mode: 'open'
});
this.shadowRoot.innerHTML = document.querySelector('#tmpLedger').innerHTML;
let parent = this,
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
this.columns = this.getAttribute('cols').split(',');
this.footers = this.getAttribute('fot').split(',');
this.status = this.getAttribute('stats').split(',');
this.months = months;
var d = new Date();
var n = d.getUTCMonth();
this.currentMonth = months[n];
this.shadowRoot.querySelector('#update').addEventListener("click", async function () {
await Promise.all([
getSelectedRows(parent).then((arrList) => {
arrList.forEach(range => getUpdateData(range, parent, "update"))
}),
count = 0,
calculateTotal(parent)
]);
});
for await/*<-obfuscator throws error*/ (let c of parent.querySelectorAll(`bbl-cell[col="8"]`)) {
let balanceCell = parseFloat(parent.querySelector(`bbl-cell[row="${c.row}"][col="9"]`).content);
maxCredit = c.content.length != 0 && c.content == 'YES' ? maxCredit + balanceCell : maxCredit + 0;
}
提前致谢,抱歉我的英语不好。
我猜你可能正在使用不支持 ES6+ 语法的 uglify。用 babel or use terser.
转译它修复您的代码并将 for await of 循环放入异步函数中,然后将您的代码复制并粘贴到此处:https://try.terser.org/
或者使用带有 es2015、es2016、es2017、stage-0 预设的 babel 的转译输出来提供给 uglify 或你的混淆器:babelified version of your code
还有一些其他项目,如 babel-minify,但 terser 是成熟的项目之一。