marko 5.17.2 → 5.17.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,7 @@ isImplicitComponent)
29
29
  // On the server
30
30
  if (!componentsContext.p_ && ownerWillRerender) {
31
31
  componentDef._I_ |= FLAG_WILL_RERENDER_IN_BROWSER;
32
+ componentDef._wrr = true;
32
33
  return componentDef;
33
34
  }
34
35
 
@@ -49,6 +50,7 @@ isImplicitComponent)
49
50
 
50
51
  if (isSplitComponent === false && out.global.noBrowserRerender !== true) {
51
52
  componentDef._I_ |= FLAG_WILL_RERENDER_IN_BROWSER;
53
+ componentDef._wrr = true;
52
54
  componentsContext.p_ = false;
53
55
  }
54
56
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtime/components/beginComponent/index.js"],"names":["ComponentDef","require","FLAG_WILL_RERENDER_IN_BROWSER","module","exports","beginComponent","componentsContext","component","key","ownerComponentDef","isSplitComponent","isImplicitComponent","componentId","id","componentDef","ownerIsRenderBoundary","ownerWillRerender","push","out","runtimeId","global","noBrowserRerender","w"],"mappings":"AAAA;;AAEA,MAAMA,YAAY,GAAGC,OAAO,CAAC,iBAAD,CAA5B;;AAEA,IAAIC,6BAA6B,GAAG,CAApC;AACA;;AAEAC,MAAM,CAACC,OAAP,GAAiB,SAASC,cAAT;AACfC,iBADe;AAEfC,SAFe;AAGfC,GAHe;AAIfC,iBAJe;AAKfC,gBALe;AAMfC,mBANe;AAOf;AACA,MAAIC,WAAW,GAAGL,SAAS,CAACM,EAA5B;;AAEA,MAAIC,YAAY,GAAIR,iBAAiB,GAAjB,GAAoC,IAAIN,YAAJ;AACtDO,EAAAA,SADsD;AAEtDK,EAAAA,WAFsD;AAGtDN,EAAAA,iBAHsD,CAAxD;;;AAMA,MAAIS,qBAAqB;AACvBN,EAAAA,iBAAiB,IAAIA,iBAAiB,IADxC;AAEA,MAAIO,iBAAiB;AACnBP,EAAAA,iBAAiB;AACjBA,EAAAA,iBAAiB,IAAjB,GAA6BP,6BAF/B;AAGA;AACA,MAAI,CAACI,iBAAiB,GAAlB,IAAqCU,iBAAzC,EAA4D;AAC1DF,IAAAA,YAAY,IAAZ,IAAyBZ,6BAAzB;AACA,WAAOY,YAAP;AACD;;AAED,MAAIH,mBAAmB,KAAK,IAA5B,EAAkC;AAChC;AACA;AACA;AACA,WAAOG,YAAP;AACD;;AAEDR,EAAAA,iBAAiB,GAAjB,CAAgCW,IAAhC,CAAqCH,YAArC;;AAEA,MAAII,GAAG,GAAGZ,iBAAiB,GAA3B;AACA,MAAIa,SAAS,GAAGD,GAAG,CAACE,MAAJ,CAAWD,SAA3B;;AAEAL,EAAAA,YAAY,IAAZ,GAAiC,IAAjC;AACAA,EAAAA,YAAY,IAAZ,GAAkCR,iBAAiB,GAAnD;;AAEA,MAAII,gBAAgB,KAAK,KAArB,IAA8BQ,GAAG,CAACE,MAAJ,CAAWC,iBAAX,KAAiC,IAAnE,EAAyE;AACvEP,IAAAA,YAAY,IAAZ,IAAyBZ,6BAAzB;AACAI,IAAAA,iBAAiB,GAAjB,GAAmC,KAAnC;AACD;;AAED,MAAI,CAACS,qBAAqB,IAAIC,iBAA1B,KAAgDR,GAAG,IAAI,IAA3D,EAAiE;AAC/DU,IAAAA,GAAG,CAACI,CAAJ;AACE;AACEH,IAAAA,SADF;AAEE,OAFF;AAGEP,IAAAA,WAHF;AAIE,OAJF;AAKEH,IAAAA,iBAAiB,CAACI,EALpB;AAME,OANF;AAOEL,IAAAA,GAPF;AAQE,SATJ;;AAWD,GAZD,MAYO;AACLU,IAAAA,GAAG,CAACI,CAAJ,CAAM,SAASH,SAAT,GAAqB,GAArB,GAA2BP,WAA3B,GAAyC,KAA/C;AACD;;AAED,SAAOE,YAAP;AACD,CAhED","sourcesContent":["\"use strict\";\n\nconst ComponentDef = require(\"../ComponentDef\");\n\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\n\nmodule.exports = function beginComponent(\n componentsContext,\n component,\n key,\n ownerComponentDef,\n isSplitComponent,\n isImplicitComponent\n) {\n var componentId = component.id;\n\n var componentDef = (componentsContext.___componentDef = new ComponentDef(\n component,\n componentId,\n componentsContext\n ));\n\n var ownerIsRenderBoundary =\n ownerComponentDef && ownerComponentDef.___renderBoundary;\n var ownerWillRerender =\n ownerComponentDef &&\n ownerComponentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER;\n // On the server\n if (!componentsContext.___isPreserved && ownerWillRerender) {\n componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;\n return componentDef;\n }\n\n if (isImplicitComponent === true) {\n // We don't mount implicit components rendered on the server\n // unless the implicit component is nested within a UI component\n // that will re-render in the browser\n return componentDef;\n }\n\n componentsContext.___components.push(componentDef);\n\n let out = componentsContext.___out;\n let runtimeId = out.global.runtimeId;\n\n componentDef.___renderBoundary = true;\n componentDef.___parentPreserved = componentsContext.___isPreserved;\n\n if (isSplitComponent === false && out.global.noBrowserRerender !== true) {\n componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;\n componentsContext.___isPreserved = false;\n }\n\n if ((ownerIsRenderBoundary || ownerWillRerender) && key != null) {\n out.w(\n \"<!--\" +\n runtimeId +\n \"^\" +\n componentId +\n \" \" +\n ownerComponentDef.id +\n \" \" +\n key +\n \"-->\"\n );\n } else {\n out.w(\"<!--\" + runtimeId + \"#\" + componentId + \"-->\");\n }\n\n return componentDef;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/runtime/components/beginComponent/index.js"],"names":["ComponentDef","require","FLAG_WILL_RERENDER_IN_BROWSER","module","exports","beginComponent","componentsContext","component","key","ownerComponentDef","isSplitComponent","isImplicitComponent","componentId","id","componentDef","ownerIsRenderBoundary","ownerWillRerender","_wrr","push","out","runtimeId","global","noBrowserRerender","w"],"mappings":"AAAA;;AAEA,MAAMA,YAAY,GAAGC,OAAO,CAAC,iBAAD,CAA5B;;AAEA,IAAIC,6BAA6B,GAAG,CAApC;AACA;;AAEAC,MAAM,CAACC,OAAP,GAAiB,SAASC,cAAT;AACfC,iBADe;AAEfC,SAFe;AAGfC,GAHe;AAIfC,iBAJe;AAKfC,gBALe;AAMfC,mBANe;AAOf;AACA,MAAIC,WAAW,GAAGL,SAAS,CAACM,EAA5B;;AAEA,MAAIC,YAAY,GAAIR,iBAAiB,GAAjB,GAAoC,IAAIN,YAAJ;AACtDO,EAAAA,SADsD;AAEtDK,EAAAA,WAFsD;AAGtDN,EAAAA,iBAHsD,CAAxD;;;AAMA,MAAIS,qBAAqB;AACvBN,EAAAA,iBAAiB,IAAIA,iBAAiB,IADxC;AAEA,MAAIO,iBAAiB;AACnBP,EAAAA,iBAAiB;AACjBA,EAAAA,iBAAiB,IAAjB,GAA6BP,6BAF/B;AAGA;AACA,MAAI,CAACI,iBAAiB,GAAlB,IAAqCU,iBAAzC,EAA4D;AAC1DF,IAAAA,YAAY,IAAZ,IAAyBZ,6BAAzB;AACAY,IAAAA,YAAY,CAACG,IAAb,GAAoB,IAApB;AACA,WAAOH,YAAP;AACD;;AAED,MAAIH,mBAAmB,KAAK,IAA5B,EAAkC;AAChC;AACA;AACA;AACA,WAAOG,YAAP;AACD;;AAEDR,EAAAA,iBAAiB,GAAjB,CAAgCY,IAAhC,CAAqCJ,YAArC;;AAEA,MAAIK,GAAG,GAAGb,iBAAiB,GAA3B;AACA,MAAIc,SAAS,GAAGD,GAAG,CAACE,MAAJ,CAAWD,SAA3B;;AAEAN,EAAAA,YAAY,IAAZ,GAAiC,IAAjC;AACAA,EAAAA,YAAY,IAAZ,GAAkCR,iBAAiB,GAAnD;;AAEA,MAAII,gBAAgB,KAAK,KAArB,IAA8BS,GAAG,CAACE,MAAJ,CAAWC,iBAAX,KAAiC,IAAnE,EAAyE;AACvER,IAAAA,YAAY,IAAZ,IAAyBZ,6BAAzB;AACAY,IAAAA,YAAY,CAACG,IAAb,GAAoB,IAApB;AACAX,IAAAA,iBAAiB,GAAjB,GAAmC,KAAnC;AACD;;AAED,MAAI,CAACS,qBAAqB,IAAIC,iBAA1B,KAAgDR,GAAG,IAAI,IAA3D,EAAiE;AAC/DW,IAAAA,GAAG,CAACI,CAAJ;AACE;AACEH,IAAAA,SADF;AAEE,OAFF;AAGER,IAAAA,WAHF;AAIE,OAJF;AAKEH,IAAAA,iBAAiB,CAACI,EALpB;AAME,OANF;AAOEL,IAAAA,GAPF;AAQE,SATJ;;AAWD,GAZD,MAYO;AACLW,IAAAA,GAAG,CAACI,CAAJ,CAAM,SAASH,SAAT,GAAqB,GAArB,GAA2BR,WAA3B,GAAyC,KAA/C;AACD;;AAED,SAAOE,YAAP;AACD,CAlED","sourcesContent":["\"use strict\";\n\nconst ComponentDef = require(\"../ComponentDef\");\n\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\n\nmodule.exports = function beginComponent(\n componentsContext,\n component,\n key,\n ownerComponentDef,\n isSplitComponent,\n isImplicitComponent\n) {\n var componentId = component.id;\n\n var componentDef = (componentsContext.___componentDef = new ComponentDef(\n component,\n componentId,\n componentsContext\n ));\n\n var ownerIsRenderBoundary =\n ownerComponentDef && ownerComponentDef.___renderBoundary;\n var ownerWillRerender =\n ownerComponentDef &&\n ownerComponentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER;\n // On the server\n if (!componentsContext.___isPreserved && ownerWillRerender) {\n componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;\n componentDef._wrr = true;\n return componentDef;\n }\n\n if (isImplicitComponent === true) {\n // We don't mount implicit components rendered on the server\n // unless the implicit component is nested within a UI component\n // that will re-render in the browser\n return componentDef;\n }\n\n componentsContext.___components.push(componentDef);\n\n let out = componentsContext.___out;\n let runtimeId = out.global.runtimeId;\n\n componentDef.___renderBoundary = true;\n componentDef.___parentPreserved = componentsContext.___isPreserved;\n\n if (isSplitComponent === false && out.global.noBrowserRerender !== true) {\n componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;\n componentDef._wrr = true;\n componentsContext.___isPreserved = false;\n }\n\n if ((ownerIsRenderBoundary || ownerWillRerender) && key != null) {\n out.w(\n \"<!--\" +\n runtimeId +\n \"^\" +\n componentId +\n \" \" +\n ownerComponentDef.id +\n \" \" +\n key +\n \"-->\"\n );\n } else {\n out.w(\"<!--\" + runtimeId + \"#\" + componentId + \"-->\");\n }\n\n return componentDef;\n};\n"],"file":"index.js"}
@@ -99,8 +99,8 @@ function addDelegatedEventHandlerToHost(eventType, host) {
99
99
  // `getAttribute` function in IE 11.
100
100
  // See https://github.com/marko-js/marko/issues/796
101
101
  curNode.correspondingUseElement || (
102
-
103
-
102
+ // in some browsers the event target can be a text node
103
+ // one example being dragenter in firefox.
104
104
  curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);
105
105
 
106
106
  // Search up the tree looking DOM events mapped to target
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","propagationStopped","oldStopPropagation","stopPropagation","curNode","correspondingUseElement","nodeType","parentNode","propName","getAttribute","noop","exports","Object","keys","forEach"],"mappings":"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","sourcesContent":["var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on<event_type>(\"<target_method>|<component_id>\")\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n"],"file":"event-delegation.js"}
1
+ {"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","propagationStopped","oldStopPropagation","stopPropagation","curNode","correspondingUseElement","nodeType","parentNode","propName","getAttribute","noop","exports","Object","keys","forEach"],"mappings":"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","sourcesContent":["var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on<event_type>(\"<target_method>|<component_id>\")\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n"],"file":"event-delegation.js"}
package/docs/rollup.md CHANGED
@@ -7,7 +7,7 @@ The [@marko/rollup](https://github.com/marko-js/rollup) transform can be used in
7
7
  ## Manual Installation
8
8
 
9
9
  ```bash
10
- npm install rollup rollup-plugin-commonjs rollup-plugin-node-resolve @marko/rollup --save-dev
10
+ npm install rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve @marko/rollup --save-dev
11
11
  ```
12
12
 
13
13
  ## Configuration
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.17.2",
3
+ "version": "5.17.6",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
7
- "@marko/compiler": "^5.16.1",
8
- "@marko/translator-default": "^5.17.2",
7
+ "@marko/compiler": "^5.17.6",
8
+ "@marko/translator-default": "^5.17.6",
9
9
  "app-module-path": "^2.2.0",
10
10
  "argly": "^1.2.0",
11
11
  "browser-refresh-client": "1.1.4",
@@ -72,5 +72,5 @@
72
72
  "index.js",
73
73
  "node-require.js"
74
74
  ],
75
- "gitHead": "0b6808a6788c181ad190a838097feda108da0125"
75
+ "gitHead": "ec2a1cdaea4b22f7b1ab4fa42f56c61ce54c5e64"
76
76
  }
@@ -29,6 +29,7 @@ module.exports = function beginComponent(
29
29
  // On the server
30
30
  if (!componentsContext.___isPreserved && ownerWillRerender) {
31
31
  componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;
32
+ componentDef._wrr = true;
32
33
  return componentDef;
33
34
  }
34
35
 
@@ -49,6 +50,7 @@ module.exports = function beginComponent(
49
50
 
50
51
  if (isSplitComponent === false && out.global.noBrowserRerender !== true) {
51
52
  componentDef.___flags |= FLAG_WILL_RERENDER_IN_BROWSER;
53
+ componentDef._wrr = true;
52
54
  componentsContext.___isPreserved = false;
53
55
  }
54
56