mirror of
https://github.com/swc-project/swc.git
synced 2024-12-22 21:21: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)
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
function lazyInitializer(payload) {
|
|
var Uninitialized = -1;
|
|
var Pending = 0;
|
|
var Resolved = 1;
|
|
var Rejected = 2;
|
|
|
|
if (payload._status === Uninitialized) {
|
|
var ctor = payload._result;
|
|
var thenable = ctor(); // Transition to the next state.
|
|
|
|
var pending = payload;
|
|
pending._status = Pending;
|
|
pending._result = thenable;
|
|
thenable.then(function (moduleObject) {
|
|
if (payload._status === Pending) {
|
|
var defaultExport = moduleObject.default;
|
|
|
|
{
|
|
if (defaultExport === undefined) {
|
|
error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\n\nYour code should look like: \n ' + // Break up imports to avoid accidentally parsing them as dependencies.
|
|
'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))", moduleObject);
|
|
}
|
|
} // Transition to the next state.
|
|
|
|
|
|
var resolved = payload;
|
|
resolved._status = Resolved;
|
|
resolved._result = defaultExport;
|
|
}
|
|
}, function (error) {
|
|
if (payload._status === Pending) {
|
|
// Transition to the next state.
|
|
var rejected = payload;
|
|
rejected._status = Rejected;
|
|
rejected._result = error;
|
|
}
|
|
});
|
|
}
|
|
|
|
if (payload._status === Resolved) {
|
|
return payload._result;
|
|
} else {
|
|
throw payload._result;
|
|
}
|
|
} |