mirror of
https://github.com/swc-project/swc.git
synced 2024-12-22 13:11:31 +03:00
f44e25c3af
swc_common: - Add `Span.has_mark`. swc_ecma_codegen: - Emit `1e3` for `1000`. - Optimize output. (#1986) swc_ecma_minifier: - name mangler: Don't use keywords as an id. - `properties`: Optimize member expression with string properties. - `inline`: Inline some function expressions even if it's not fn-local. - `analyzer`: Track reassignment correctly. - `analyzer`: Track fn-local correctly. - `sequences`: Inject `void` if required. - `inline`: Inline function declarations correctly. - `sequences`: Merge expressions into test of if statements. - `sequences`: Reduce calls to an assigned variable. - Use `Marks` instead of `&dyn Comments`. swc_ecma_transforms_optimization: - `expr_simplifier`: Fix infinite loops. node/swc: - Ensure that `.transform` performs minification. (#1989)
18 lines
610 B
JavaScript
18 lines
610 B
JavaScript
export const E = {
|
|
_sort: function() {
|
|
for(var l, a, b, j, k, moved, doneKey, s = YObject.keys(this.required), done = {
|
|
}, p = 0;;){
|
|
for(l = s.length, moved = !1, j = p; j < l; j++){
|
|
for(a = s[j], k = j + 1; k < l; k++)if (!done[doneKey = a + s[k]] && this._requires(a, s[k])) {
|
|
b = s.splice(k, 1), s.splice(j, 0, b[0]), done[doneKey] = !0, moved = !0;
|
|
break;
|
|
}
|
|
if (moved) break;
|
|
p++;
|
|
}
|
|
if (!moved) break;
|
|
}
|
|
this.sorted = s;
|
|
}
|
|
};
|