File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed
packages/marko/src/runtime/vdom Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " marko " : patch
3
+ " @marko/compiler " : patch
4
+ " @marko/translator-default " : patch
5
+ ---
6
+
7
+ Avoid mutating component instance in HMR mode. (Improves support in tags api preview)
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ var updateManager = require("../components/update-manager");
7
7
var createTemplate = runtime . t ;
8
8
var createComponent = registry . ___createComponent ;
9
9
var registered = { } ;
10
+ var instancesByType = { } ;
10
11
var queue ;
11
12
12
13
runtime . t = function ( typeName ) {
@@ -16,7 +17,7 @@ runtime.t = function (typeName) {
16
17
17
18
var renderFn ;
18
19
var template = ( registered [ typeName ] = createTemplate ( typeName ) ) ;
19
- var instances = ( template . ___instances = [ ] ) ;
20
+ var instances = ( instancesByType [ typeName ] = [ ] ) ;
20
21
Object . defineProperty ( template , "_" , {
21
22
get : function ( ) {
22
23
return renderFn && proxyRenderer ;
@@ -75,11 +76,10 @@ runtime.t = function (typeName) {
75
76
} ;
76
77
77
78
registry . ___createComponent = function ( typeName , id ) {
78
- var template = registered [ typeName ] ;
79
+ var instances = instancesByType [ typeName ] ;
79
80
var instance = createComponent ( typeName , id ) ;
80
81
81
- if ( template ) {
82
- var instances = template . ___instances ;
82
+ if ( instances ) {
83
83
instances . push ( instance ) ;
84
84
instance . once ( "destroy" , function ( ) {
85
85
if ( ! instance . ___hmrDestroyed ) {
You can’t perform that action at this time.
0 commit comments