2

I am working on a Dropzone installation for the first time. From what I have seen in the docs, Dropzone should support IE10+. I am getting JS errors and I'm wondering if I am doing something wrong (is it fixable?) or should I quit beating my head against the wall.

I am using the regular dropzone.js (not the AMD). I started with Dropzone 5.7.0 and got errors pointing to Symbol.iterator. I have since updated to 5.7.2, so I can't reproduce the error right now. However, it is referenced in this thread. I tried what the thread suggested but couldn't find the same code (the thread was for the AMD version). I also tried different options for polyfill.io and I see some bable comments in the code itself. No luck.

I tried version 5.7.2 and got a different error: "Exception thrown and not caught" on line 25. This segment is singled out in the console:

throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");

This is the entire function. It is contained on a single line, but I have prettified it here:

function _createForOfIteratorHelper(o, allowArrayLike) {
var it;
if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {
    if (
        Array.isArray(o) ||
        (it = _unsupportedIterableToArray(o)) ||
        (allowArrayLike && o && typeof o.length === 'number')
    ) {
        if (it) o = it;
        var i = 0;
        var F = function F() {};
        return {
            s: F,
            n: function n() {
                if (i >= o.length) return { done: true };
                return { done: false, value: o[i++] };
            },
            e: function e(_e) {
                throw _e;
            },
            f: F,
        };
    }
    throw new TypeError(
        'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
    );
}
var normalCompletion = true,
    didErr = false,
    err;
return {
    s: function s() {
        it = o[Symbol.iterator]();
    },
    n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
    },
    e: function e(_e2) {
        didErr = true;
        err = _e2;
    },
    f: function f() {
        try {
            if (!normalCompletion && it['return'] != null) it['return']();
        } finally {
            if (didErr) throw err;
        }
    },
};

}

I tried polyfills on this too with no luck. I haven't found anything on this specific error. While I'm not overly concerned about support, I do have a few customers who are stuck on IE11 and/or early Edge.

So, basically, has anyone gotten this to work in IE and older versions of Edge?

TIA

Tim

Tim R
  • 43
  • 7
  • Actually, I did, but I was adding more as you wrote. I didn't realize that one of the polyfills had broken the function apart. The actual function was in a single line on line 25. The full function is included now. – Tim R Jan 15 '21 at 17:28
  • 2
    @Teemu please keep things friendly. No need for sarcasm or hostility - just ask if you need more info from the OP. – Mitya Jan 15 '21 at 17:28

0 Answers0