marko 5.17.2 → 5.17.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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