mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
### What? Use the last side effect fragment instead of the module evaluation fragment. ### Why? Module evaluation fragment is a waste of memory. ### How? Closes PACK-3440 --------- Co-authored-by: Tobias Koppers <[email protected]>
7.6 KiB
7.6 KiB
Items
Count: 11
Item 1: Stmt 0, Normal
console.log("Hello");
- Side effects
Item 2: Stmt 1, VarDeclarator(0)
const value = externalFunction();
- Side effects
- Declares:
value - Write:
value
Item 3: Stmt 2, VarDeclarator(0)
const value2 = externalObject.propertyWithGetter;
- Side effects
- Declares:
value2 - Write:
value2
Item 4: Stmt 3, Normal
externalObject.propertyWithSetter = 42;
- Side effects
Item 5: Stmt 4, VarDeclarator(0)
const value3 = externalFunction();
- Declares:
value3
Item 6: Stmt 5, VarDeclarator(0)
const shared = {
value,
value2,
value3
};
- Declares:
shared - Reads:
value,value2,value3 - Write:
value,value2,value3,shared
Item 7: Stmt 6, Normal
console.log(shared);
- Side effects
- Reads:
shared
Item 8: Stmt 7, VarDeclarator(0)
export const a = {
shared,
a: "aaaaaaaaaaa"
};
- Declares:
a - Reads:
shared - Write:
shared,a
Item 9: Stmt 8, VarDeclarator(0)
export const b = {
shared,
b: "bbbbbbbbbbb"
};
- Declares:
b - Reads:
shared - Write:
shared,b
Phase 1
graph TD
Item1;
Item2;
Item3;
Item4;
Item5;
Item6;
Item7;
Item8;
Item9;
Item10;
Item10["export a"];
Item11;
Item11["export b"];
Phase 2
graph TD
Item1;
Item2;
Item3;
Item4;
Item5;
Item6;
Item7;
Item8;
Item9;
Item10;
Item10["export a"];
Item11;
Item11["export b"];
Item2 --> Item1;
Item3 --> Item2;
Item4 --> Item3;
Item6 --> Item2;
Item6 --> Item3;
Item6 --> Item5;
Item7 --> Item6;
Item7 --> Item4;
Item8 --> Item6;
Item8 -.-> Item7;
Item9 --> Item8;
Item9 --> Item6;
Item10 --> Item8;
Item11 --> Item9;
Phase 3
graph TD
Item1;
Item2;
Item3;
Item4;
Item5;
Item6;
Item7;
Item8;
Item9;
Item10;
Item10["export a"];
Item11;
Item11["export b"];
Item2 --> Item1;
Item3 --> Item2;
Item4 --> Item3;
Item6 --> Item2;
Item6 --> Item3;
Item6 --> Item5;
Item7 --> Item6;
Item7 --> Item4;
Item8 --> Item6;
Item8 -.-> Item7;
Item9 --> Item8;
Item9 --> Item6;
Item10 --> Item8;
Item11 --> Item9;
Phase 4
graph TD
Item1;
Item2;
Item3;
Item4;
Item5;
Item6;
Item7;
Item8;
Item9;
Item10;
Item10["export a"];
Item11;
Item11["export b"];
Item2 --> Item1;
Item3 --> Item2;
Item4 --> Item3;
Item6 --> Item2;
Item6 --> Item3;
Item6 --> Item5;
Item7 --> Item6;
Item7 --> Item4;
Item8 --> Item6;
Item8 -.-> Item7;
Item9 --> Item8;
Item9 --> Item6;
Item10 --> Item8;
Item11 --> Item9;
Final
graph TD
N0["Items: [ItemId(0, Normal), ItemId(1, VarDeclarator(0)), ItemId(2, VarDeclarator(0)), ItemId(4, VarDeclarator(0)), ItemId(5, VarDeclarator(0))]"];
N1["Items: [ItemId(3, Normal), ItemId(6, Normal), ItemId(7, VarDeclarator(0))]"];
N2["Items: [ItemId(8, VarDeclarator(0)), ItemId(Export(("b", #2), "b"))]"];
N3["Items: [ItemId(Export(("a", #2), "a"))]"];
N1 --> N0;
N3 --> N1;
N2 --> N0;
N2 --> N1;
Entrypoints
{
ModuleEvaluation: 1,
Export(
"a",
): 3,
Export(
"b",
): 2,
Exports: 4,
}
Modules (dev)
Part 0
console.log("Hello");
const value = externalFunction();
const value2 = externalObject.propertyWithGetter;
const value3 = externalFunction();
const shared = {
value,
value2,
value3
};
export { value as a } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { value2 as b } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { value3 as c } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { shared as d } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 1
import { d as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -0
};
externalObject.propertyWithSetter = 42;
console.log(shared);
const a = {
shared,
a: "aaaaaaaaaaa"
};
export { a as e } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { };
Part 2
import { d as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -0
};
import "__TURBOPACK_PART__" assert {
__turbopack_part__: 1
};
const b = {
shared,
b: "bbbbbbbbbbb"
};
export { b };
export { b as f } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 3
import { e as a } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -1
};
export { a };
Part 4
export { b } from "__TURBOPACK_PART__" assert {
__turbopack_part__: "export b"
};
export { a } from "__TURBOPACK_PART__" assert {
__turbopack_part__: "export a"
};
Merged (module eval)
import { d as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -0
};
externalObject.propertyWithSetter = 42;
console.log(shared);
const a = {
shared,
a: "aaaaaaaaaaa"
};
export { a as e } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { };
Entrypoints
{
ModuleEvaluation: 2,
Export(
"a",
): 6,
Export(
"b",
): 5,
Exports: 7,
}
Modules (prod)
Part 0
console.log("Hello");
const value = externalFunction();
export { value as a } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 1
import "__TURBOPACK_PART__" assert {
__turbopack_part__: 0
};
const value2 = externalObject.propertyWithGetter;
export { value2 as b } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 2
import { c as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -3
};
import "__TURBOPACK_PART__" assert {
__turbopack_part__: 1
};
externalObject.propertyWithSetter = 42;
console.log(shared);
export { };
Part 3
import { a as value } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -0
};
import { b as value2 } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -1
};
const value3 = externalFunction();
const shared = {
value,
value2,
value3
};
export { value3 as d } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
export { shared as c } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 4
import { c as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -3
};
const a = {
shared,
a: "aaaaaaaaaaa"
};
export { a as e } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 5
import { c as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -3
};
import "__TURBOPACK_PART__" assert {
__turbopack_part__: 4
};
const b = {
shared,
b: "bbbbbbbbbbb"
};
export { b };
export { b as f } from "__TURBOPACK_VAR__" assert {
__turbopack_var__: true
};
Part 6
import { e as a } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -4
};
export { a };
Part 7
export { b } from "__TURBOPACK_PART__" assert {
__turbopack_part__: "export b"
};
export { a } from "__TURBOPACK_PART__" assert {
__turbopack_part__: "export a"
};
Merged (module eval)
import { c as shared } from "__TURBOPACK_PART__" assert {
__turbopack_part__: -3
};
import "__TURBOPACK_PART__" assert {
__turbopack_part__: 1
};
externalObject.propertyWithSetter = 42;
console.log(shared);
export { };