为什么没有混淆器使用我的Javascript代码?是因为ecmascript吗?

问题描述 投票:0回答:1

我似乎无法混淆,即使它确实被混淆,它也会停止正常工作并引发错误。混淆器在异步/等待时抛出意外令牌或错误。这是代码

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;
}

谢谢您,我英语不好。

javascript obfuscation ecmascript-7
1个回答
0
投票

我猜您可能正在使用不支持ES6 +语法的uglify。用babel转换它,或使用terser

修复您的代码,然后将等待循环的异步函数放入其中,然后在此处复制并粘贴您的代码:https://try.terser.org/

[还有一些其他项目,例如babel-minify,但terser是成熟的项目之一。

© www.soinside.com 2019 - 2024. All rights reserved.