<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>184706</bug_id>
          
          <creation_ts>2018-04-17 13:40:05 -0700</creation_ts>
          <short_desc>A put is not an ExistingProperty put when we transition a structure because of an attributes change</short_desc>
          <delta_ts>2018-04-17 16:48:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415258</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 13:40:05 -0700</bug_when>
    <thetext>tryCachePutByID checks that the baseValue&apos;s structure is the same as the structure that&apos;s passed in. That&apos;s not necessarily true for some put operations, because they used to be able to do something like putDirect between the time the structure is obtained from the baseValue and the time tryCachePutByID is called. Instead we should delay getting the structure from baseValue until after putDirect is called, so that a change caused by putDirect doesn&apos;t cause confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415259</commentid>
    <comment_count>1</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 13:41:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/38871451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415261</commentid>
    <comment_count>2</comment_count>
      <attachid>338145</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 13:44:53 -0700</bug_when>
    <thetext>Created attachment 338145
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415262</commentid>
    <comment_count>3</comment_count>
      <attachid>338145</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-17 13:50:14 -0700</bug_when>
    <thetext>Comment on attachment 338145
patch

I don&apos;t see how this doesn&apos;t disable caching of all transitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415263</commentid>
    <comment_count>4</comment_count>
      <attachid>338145</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-04-17 13:50:48 -0700</bug_when>
    <thetext>Comment on attachment 338145
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=338145&amp;action=review

This change is wrong.  It disables transition inline caching.  That may fix a bug in transition inline caching, but it&apos;s not a correct fix.

&gt; JSTests/ChangeLog:3
&gt; +        put by ID should be aware of structure transitions

This title is super scary and probably incorrect.  put_by_id (the bytecode) and PutById (the DFG node) both know about structure transitions.  They know *a lot* about them.  So, you should make this title a lot more specific.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:528
&gt; -    Structure* structure = baseValue.isCell() ? baseValue.asCell()-&gt;structure(*vm) : nullptr;
&gt;      baseValue.putInline(exec, ident, value, slot);
&gt;      RETURN_IF_EXCEPTION(scope, void());
&gt;  
&gt;      if (accessType != static_cast&lt;AccessType&gt;(stubInfo-&gt;accessType))
&gt;          return;
&gt; -    
&gt; +
&gt; +    Structure* structure = baseValue.isCell() ? baseValue.asCell()-&gt;structure(*vm) : nullptr;

This is way wrong.  The transition inline cache needs to know about the structure before the transition.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:556
&gt; -    Structure* structure = baseValue.isCell() ? baseValue.asCell()-&gt;structure(*vm) : nullptr;    
&gt;      baseValue.putInline(exec, ident, value, slot);
&gt;      RETURN_IF_EXCEPTION(scope, void());
&gt;  
&gt;      if (accessType != static_cast&lt;AccessType&gt;(stubInfo-&gt;accessType))
&gt;          return;
&gt; -    
&gt; +
&gt; +    Structure* structure = baseValue.isCell() ? baseValue.asCell()-&gt;structure(*vm) : nullptr;

Ditto.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:582
&gt; -    
&gt; -    Structure* structure = baseObject-&gt;structure(*vm);
&gt; +
&gt;      baseObject-&gt;putDirect(*vm, ident, value, slot);
&gt;      
&gt;      if (accessType != static_cast&lt;AccessType&gt;(stubInfo-&gt;accessType))
&gt;          return;
&gt; -    
&gt; +
&gt; +    Structure* structure = baseObject-&gt;structure(*vm);

Ditto.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:608
&gt; -    
&gt; -    Structure* structure = baseObject-&gt;structure(*vm);
&gt; +
&gt;      baseObject-&gt;putDirect(*vm, ident, value, slot);
&gt;      
&gt;      if (accessType != static_cast&lt;AccessType&gt;(stubInfo-&gt;accessType))
&gt;          return;
&gt; -    
&gt; +
&gt; +    Structure* structure = baseObject-&gt;structure(*vm);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415276</commentid>
    <comment_count>5</comment_count>
      <attachid>338149</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 14:29:48 -0700</bug_when>
    <thetext>Created attachment 338149
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415277</commentid>
    <comment_count>6</comment_count>
      <attachid>338149</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-17 14:31:56 -0700</bug_when>
    <thetext>Comment on attachment 338149
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=338149&amp;action=review

&gt; JSTests/ChangeLog:3
&gt; +        A property isn&apos;t existing if we transition a structure

This bug title is hard to parse, I&apos;d suggest something like:
A put is not an ExistingProperty put when we transition a structure because of an attributes change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415278</commentid>
    <comment_count>7</comment_count>
      <attachid>338149</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-17 14:32:45 -0700</bug_when>
    <thetext>Comment on attachment 338149
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=338149&amp;action=review

&gt; JSTests/stress/put-by-id-direct-strict-transition.js:11
&gt; +    const obj = {
&gt; +        set hello(ignored) {},
&gt; +        [theglobal]: 0
&gt; +    };

Please also add a test for 

obj = {
    [theglobal]:0,
    set hello(ignored){}
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415288</commentid>
    <comment_count>8</comment_count>
      <attachid>338153</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 14:55:16 -0700</bug_when>
    <thetext>Created attachment 338153
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415303</commentid>
    <comment_count>9</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-17 15:29:49 -0700</bug_when>
    <thetext>Confirmed perf neutral:

Geomean of preferred means:
   &lt;scaled-result&gt;                                   18.2710+-0.1104           18.1661+-0.0614          might be 1.0058x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415341</commentid>
    <comment_count>10</comment_count>
      <attachid>338153</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 16:48:06 -0700</bug_when>
    <thetext>Comment on attachment 338153
patch

Clearing flags on attachment: 338153

Committed r230740: &lt;https://trac.webkit.org/changeset/230740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415342</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 16:48:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338145</attachid>
            <date>2018-04-17 13:44:53 -0700</date>
            <delta_ts>2018-04-17 14:29:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-put-by-ID-should-be-aware-of-structure-transitions.patch</filename>
            <type>text/plain</type>
            <size>7065</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA3YWE4YmNmMGExNTExYTFjNmQyYmYxOWY1NjYxNmVjOGQyYTcyMDczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDE3IEFwciAyMDE4IDEzOjQ0OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gcHV0IGJ5
IElEIHNob3VsZCBiZSBhd2FyZSBvZiBzdHJ1Y3R1cmUgdHJhbnNpdGlvbnMKCi0tLQogSlNUZXN0
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysr
KysrKysrKysrCiAuLi4vc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRpb24u
anMgICAgfCAxMyArKysrKysrKysrKysrCiBKU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0
LXRyYW5zaXRpb24uanMgICAgICAgfCAxMSArKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysr
KysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwICAgICAgICAg
fCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25z
KCspLCAxMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9w
dXQtYnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQg
SlNUZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzCgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhM2EyNjQzLi5l
Y2EyMDk0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA0LTE3ICBKRiBCYXN0aWVuICA8amZiYXN0aWVu
QGFwcGxlLmNvbT4KKworICAgICAgICBwdXQgYnkgSUQgc2hvdWxkIGJlIGF3YXJlIG9mIHN0cnVj
dHVyZSB0cmFuc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODg3MTQ1MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9wdXQt
YnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0
LmZvbyk6CisgICAgICAgIChqLmNvbnN0Lm9iai5zZXQgaGVsbG8pOgorICAgICAgICAqIHN0cmVz
cy9wdXQtYnktaWQtZGlyZWN0LXRyYW5zaXRpb24uanM6IEFkZGVkLgorICAgICAgICAoY29uc3Qu
Zm9vKToKKyAgICAgICAgKGouY29uc3Qub2JqLnNldCBoZWxsbyk6CisKIDIwMTgtMDQtMTQgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGdW5jdGlvbi5wcm90b3R5
cGUuY2FsbGVyIHNob3VsZG4ndCByZXR1cm4gZ2VuZXJhdG9yIGJvZGllcwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLWRpcmVjdC1zdHJpY3QtdHJhbnNpdGlvbi5qcyBiL0pT
VGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRpb24uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1MTYxNwotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRpb24uanMKQEAg
LTAsMCArMSwxMyBAQAorInVzZSBzdHJpY3QiCisKK2xldCB0aGVnbG9iYWwgPSAwOworZm9yICh0
aGVnbG9iYWwgPSAwOyB0aGVnbG9iYWwgPCAxMDAwMDA7ICsrdGhlZ2xvYmFsKQorICAgIDsKK2Nv
bnN0IGZvbyA9IChpZ25vcmVkLCBhcmcxKSA9PiB7IHRoZWdsb2JhbCA9IGFyZzE7IH07Citmb3Ig
KGxldCBqID0gMDsgaiA8IDEwMDAwOyArK2opIHsKKyAgICBjb25zdCBvYmogPSB7CisgICAgICAg
IHNldCBoZWxsbyhpZ25vcmVkKSB7fSwKKyAgICAgICAgW3RoZWdsb2JhbF06IDAKKyAgICB9Owor
ICAgIGZvbyhvYmosICdoZWxsbycpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcHV0
LWJ5LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLWRp
cmVjdC10cmFuc2l0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYx
MWY4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0
LXRyYW5zaXRpb24uanMKQEAgLTAsMCArMSwxMSBAQAorbGV0IHRoZWdsb2JhbCA9IDA7Citmb3Ig
KHRoZWdsb2JhbCA9IDA7IHRoZWdsb2JhbCA8IDEwMDAwMDsgKyt0aGVnbG9iYWwpCisgICAgOwor
Y29uc3QgZm9vID0gKGlnbm9yZWQsIGFyZzEpID0+IHsgdGhlZ2xvYmFsID0gYXJnMTsgfTsKK2Zv
ciAobGV0IGogPSAwOyBqIDwgMTAwMDA7ICsraikgeworICAgIGNvbnN0IG9iaiA9IHsKKyAgICAg
ICAgc2V0IGhlbGxvKGlnbm9yZWQpIHt9LAorICAgICAgICBbdGhlZ2xvYmFsXTogMAorICAgIH07
CisgICAgZm9vKG9iaiwgJ2hlbGxvJyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZjFkMzhhLi5hMDExZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxOC0wNC0xNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgcHV0IGJ5IElEIHNob3VsZCBiZSBhd2FyZSBvZiBzdHJ1Y3R1cmUgdHJhbnNpdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcwNgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzg4NzE0NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgdHJ5Q2FjaGVQdXRCeUlEIGNoZWNrcyB0aGF0IHRoZSBi
YXNlVmFsdWUncyBzdHJ1Y3R1cmUgaXMgdGhlIHNhbWUKKyAgICAgICAgYXMgdGhlIHN0cnVjdHVy
ZSB0aGF0J3MgcGFzc2VkIGluLiBUaGF0J3Mgbm90IG5lY2Vzc2FyaWx5IHRydWUgZm9yCisgICAg
ICAgIHNvbWUgcHV0IG9wZXJhdGlvbnMsIGJlY2F1c2UgdGhleSB1c2VkIHRvIGJlIGFibGUgdG8g
ZG8gc29tZXRoaW5nCisgICAgICAgIGxpa2UgcHV0RGlyZWN0IGJldHdlZW4gdGhlIHRpbWUgdGhl
IHN0cnVjdHVyZSBpcyBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAgICBiYXNlVmFsdWUgYW5kIHRo
ZSB0aW1lIHRyeUNhY2hlUHV0QnlJRCBpcyBjYWxsZWQuIEluc3RlYWQgd2UKKyAgICAgICAgc2hv
dWxkIGRlbGF5IGdldHRpbmcgdGhlIHN0cnVjdHVyZSBmcm9tIGJhc2VWYWx1ZSB1bnRpbCBhZnRl
cgorICAgICAgICBwdXREaXJlY3QgaXMgY2FsbGVkLCBzbyB0aGF0IGEgY2hhbmdlIGNhdXNlZCBi
eSBwdXREaXJlY3QgZG9lc24ndAorICAgICAgICBjYXVzZSBjb25mdXNpb24uCisKKyAgICAgICAg
VGhlIGFzc2VydGlvbiBhcyBhZGRlZCBpbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MDM0MworCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorCiAy
MDE4LTA0LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRnVu
Y3Rpb24ucHJvdG90eXBlLmNhbGxlciBzaG91bGRuJ3QgcmV0dXJuIGdlbmVyYXRvciBib2RpZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDE2NjIz
MWIuLmY0ZmNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtNTE5LDEzICs1MTksMTMgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5SWRTdHJpY3RPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZVN0dWIKICAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwogICAgIFB1dFByb3BlcnR5
U2xvdCBzbG90KGJhc2VWYWx1ZSwgdHJ1ZSwgY29kZUJsb2NrLT5wdXRCeUlkQ29udGV4dCgpKTsK
IAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZVZhbHVlLmlzQ2VsbCgpID8gYmFzZVZh
bHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKnZtKSA6IG51bGxwdHI7CiAgICAgYmFzZVZhbHVlLnB1
dElubGluZShleGVjLCBpZGVudCwgdmFsdWUsIHNsb3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICBpZiAoYWNjZXNzVHlwZSAhPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSkpCiAgICAgICAgIHJldHVybjsKLSAgICAK
KworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZVZhbHVlLmlzQ2VsbCgpID8gYmFzZVZh
bHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKnZtKSA6IG51bGxwdHI7CiAgICAgaWYgKHN0dWJJbmZv
LT5jb25zaWRlckNhY2hpbmcoY29kZUJsb2NrLCBzdHJ1Y3R1cmUpKQogICAgICAgICByZXBhdGNo
UHV0QnlJRChleGVjLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgaWRlbnQsIHNsb3QsICpzdHViSW5m
bywgTm90RGlyZWN0KTsKIH0KQEAgLTU0NywxMyArNTQ3LDEzIEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1
Y3R1cmVTCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAg
ICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUsIGZhbHNlLCBjb2RlQmxvY2stPnB1dEJ5
SWRDb250ZXh0KCkpOwogCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlVmFsdWUuaXND
ZWxsKCkgPyBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgqdm0pIDogbnVsbHB0cjsgICAg
CiAgICAgYmFzZVZhbHVlLnB1dElubGluZShleGVjLCBpZGVudCwgdmFsdWUsIHNsb3QpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICBpZiAoYWNjZXNzVHlw
ZSAhPSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSkpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZVZhbHVl
LmlzQ2VsbCgpID8gYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKnZtKSA6IG51bGxwdHI7
CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcoY29kZUJsb2NrLCBzdHJ1Y3R1cmUp
KQogICAgICAgICByZXBhdGNoUHV0QnlJRChleGVjLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgaWRl
bnQsIHNsb3QsICpzdHViSW5mbywgTm90RGlyZWN0KTsKIH0KQEAgLTU3MywxMyArNTczLDEzIEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUo
RXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1CiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25Q
dXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIGJhc2VPYmplY3QtPmNsYXNzSW5mbygqdm0pLCBp
ZGVudCkpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZU9iamVjdCwgdHJ1ZSwgY29kZUJsb2NrLT5wdXRC
eUlkQ29udGV4dCgpKTsKLSAgICAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VPYmpl
Y3QtPnN0cnVjdHVyZSgqdm0pOworCiAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KCp2bSwgaWRl
bnQsIHZhbHVlLCBzbG90KTsKICAgICAKICAgICBpZiAoYWNjZXNzVHlwZSAhPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSkpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKKworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZU9iamVjdC0+c3RydWN0dXJlKCp2
bSk7CiAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcoY29kZUJsb2NrLCBzdHJ1Y3R1
cmUpKQogICAgICAgICByZXBhdGNoUHV0QnlJRChleGVjLCBiYXNlT2JqZWN0LCBzdHJ1Y3R1cmUs
IGlkZW50LCBzbG90LCAqc3R1YkluZm8sIERpcmVjdCk7CiB9CkBAIC01OTksMTMgKzU5OSwxMyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydQogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9u
UHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplLCBiYXNlT2JqZWN0LT5jbGFzc0luZm8oKnZt
KSwgaWRlbnQpKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygp
OwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGJhc2VPYmplY3QsIGZhbHNlLCBjb2RlQmxvY2st
PnB1dEJ5SWRDb250ZXh0KCkpOwotICAgIAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFz
ZU9iamVjdC0+c3RydWN0dXJlKCp2bSk7CisKICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3QoKnZt
LCBpZGVudCwgdmFsdWUsIHNsb3QpOwogICAgIAogICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRp
Y19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKSkKICAgICAgICAgcmV0dXJu
OwotICAgIAorCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlT2JqZWN0LT5zdHJ1Y3R1
cmUoKnZtKTsKICAgICBpZiAoc3R1YkluZm8tPmNvbnNpZGVyQ2FjaGluZyhjb2RlQmxvY2ssIHN0
cnVjdHVyZSkpCiAgICAgICAgIHJlcGF0Y2hQdXRCeUlEKGV4ZWMsIGJhc2VPYmplY3QsIHN0cnVj
dHVyZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgRGlyZWN0KTsKIH0KLS0gCjIuMTAuMQoK
</data>
<flag name="review"
          id="356444"
          type_id="1"
          status="-"
          setter="saam"
    />
    <flag name="commit-queue"
          id="356445"
          type_id="3"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338149</attachid>
            <date>2018-04-17 14:29:48 -0700</date>
            <delta_ts>2018-04-17 14:55:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-A-property-isn-t-existing-if-we-transition-a-structu.patch</filename>
            <type>text/plain</type>
            <size>5248</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAyMmM4ZDA5ODBmZTE4MzFhMDY1MTZhYmZjYjkyY2NjMzUyYTJhMTFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDE3IEFwciAyMDE4IDE0OjI5OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQSBwcm9w
ZXJ0eSBpc24ndCBleGlzdGluZyBpZiB3ZSB0cmFuc2l0aW9uIGEgc3RydWN0dXJlCgotLS0KIEpT
VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr
KysrKysrKysrKysrKysKIEpTVGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRy
YW5zaXRpb24uanMgfCAxMyArKysrKysrKysrKysrCiBKU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQt
ZGlyZWN0LXRyYW5zaXRpb24uanMgICAgICAgIHwgMTEgKysrKysrKysrKysKIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysr
KysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggICAg
ICB8IDEwICsrKysrKy0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNCBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQt
ZGlyZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9z
dHJlc3MvcHV0LWJ5LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzCgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhM2EyNjQzLi45YTQ0MTcyIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDE4LTA0LTE3ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNv
bT4KKworICAgICAgICBBIHByb3BlcnR5IGlzbid0IGV4aXN0aW5nIGlmIHdlIHRyYW5zaXRpb24g
YSBzdHJ1Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NDcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg4NzE0NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvcHV0LWJ5LWlk
LWRpcmVjdC1zdHJpY3QtdHJhbnNpdGlvbi5qczogQWRkZWQuCisgICAgICAgIChjb25zdC5mb28p
OgorICAgICAgICAoai5jb25zdC5vYmouc2V0IGhlbGxvKToKKyAgICAgICAgKiBzdHJlc3MvcHV0
LWJ5LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0LmZvbyk6
CisgICAgICAgIChqLmNvbnN0Lm9iai5zZXQgaGVsbG8pOgorCiAyMDE4LTA0LTE0ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRnVuY3Rpb24ucHJvdG90eXBlLmNh
bGxlciBzaG91bGRuJ3QgcmV0dXJuIGdlbmVyYXRvciBib2RpZXMKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRpb24uanMgYi9KU1Rlc3Rz
L3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NTE2MTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzCkBAIC0wLDAg
KzEsMTMgQEAKKyJ1c2Ugc3RyaWN0IgorCitsZXQgdGhlZ2xvYmFsID0gMDsKK2ZvciAodGhlZ2xv
YmFsID0gMDsgdGhlZ2xvYmFsIDwgMTAwMDAwOyArK3RoZWdsb2JhbCkKKyAgICA7Citjb25zdCBm
b28gPSAoaWdub3JlZCwgYXJnMSkgPT4geyB0aGVnbG9iYWwgPSBhcmcxOyB9OworZm9yIChsZXQg
aiA9IDA7IGogPCAxMDAwMDsgKytqKSB7CisgICAgY29uc3Qgb2JqID0geworICAgICAgICBzZXQg
aGVsbG8oaWdub3JlZCkge30sCisgICAgICAgIFt0aGVnbG9iYWxdOiAwCisgICAgfTsKKyAgICBm
b28ob2JqLCAnaGVsbG8nKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3B1dC1ieS1p
ZC1kaXJlY3QtdHJhbnNpdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qt
dHJhbnNpdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTFmOGVk
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLWRpcmVjdC10cmFu
c2l0aW9uLmpzCkBAIC0wLDAgKzEsMTEgQEAKK2xldCB0aGVnbG9iYWwgPSAwOworZm9yICh0aGVn
bG9iYWwgPSAwOyB0aGVnbG9iYWwgPCAxMDAwMDA7ICsrdGhlZ2xvYmFsKQorICAgIDsKK2NvbnN0
IGZvbyA9IChpZ25vcmVkLCBhcmcxKSA9PiB7IHRoZWdsb2JhbCA9IGFyZzE7IH07Citmb3IgKGxl
dCBqID0gMDsgaiA8IDEwMDAwOyArK2opIHsKKyAgICBjb25zdCBvYmogPSB7CisgICAgICAgIHNl
dCBoZWxsbyhpZ25vcmVkKSB7fSwKKyAgICAgICAgW3RoZWdsb2JhbF06IDAKKyAgICB9OworICAg
IGZvbyhvYmosICdoZWxsbycpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNGYxZDM4
YS4uNWUxMjI3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTgtMDQtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIEEg
cHJvcGVydHkgaXNuJ3QgZXhpc3RpbmcgaWYgd2UgdHJhbnNpdGlvbiBhIHN0cnVjdHVyZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzA2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zODg3MTQ1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHB1dHRpbmcgYSBwcm9wZXJ0eSBvbiBhIHN0cnVj
dHVyZSBhbmQgdGhlIHNsb3QgaXMgYSBkaWZmZXJlbnQKKyAgICAgICAgdHlwZSwgdGhlIHNsb3Qg
Y2FuJ3QgYmUgc2FpZCB0byBoYXZlIGFscmVhZHkgYmVlbiBleGlzdGluZy4KKworICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRE
aXJlY3RJbnRlcm5hbCk6CisKIDIwMTgtMDQtMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbGVyIHNob3VsZG4ndCByZXR1
cm4gZ2VuZXJhdG9yIGJvZGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdElubGluZXMuaAppbmRleCA3OTRlZTIwLi41ZTI3MDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtMjg3LDEyICsyODcs
MTMgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbChWTSYg
dm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUKIAogICAgICAgICAgICAgcHV0RGlyZWN0KHZt
LCBvZmZzZXQsIHZhbHVlKTsKICAgICAgICAgICAgIHN0cnVjdHVyZS0+ZGlkUmVwbGFjZVByb3Bl
cnR5KG9mZnNldCk7Ci0gICAgICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHkodGhpcywg
b2Zmc2V0KTsKIAogICAgICAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6
QWNjZXNzb3IpIHx8IChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yKSAhPSAoY3VycmVudEF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IpKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSkpOwogICAgICAgICAgICAgICAgIHNldFN0cnVjdHVyZSh2bSwg
U3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3Bl
cnR5TmFtZSwgYXR0cmlidXRlcykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgc2xvdC5zZXRFeGlzdGluZ1Byb3BlcnR5KHRoaXMsIG9mZnNldCk7
CisKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTM0NCwxMyArMzQ1
LDE0IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0m
IHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICAgICAgdm0sIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QuY29udGV4dCgpID09IFB1dFByb3BlcnR5U2xvdDo6UHV0QnlJ
ZCk7CiAgICAgICAgIH0KIAotICAgICAgICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHkodGhpcywg
b2Zmc2V0KTsKICAgICAgICAgcHV0RGlyZWN0KHZtLCBvZmZzZXQsIHZhbHVlKTsKIAogICAgICAg
ICBpZiAoKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICE9IChjdXJy
ZW50QXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgfHwgKGF0dHJpYnV0
ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpICE9IChjdXJyZW50QXR0cmli
dXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpIHsKICAgICAgICAgICAg
IEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKICAg
ICAgICAgICAgIHNldFN0cnVjdHVyZSh2bSwgU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFu
c2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpOwotICAgICAg
ICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc2xvdC5zZXRFeGlzdGluZ1Byb3BlcnR5
KHRoaXMsIG9mZnNldCk7CisKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0tIAoyLjEw
LjEKCg==
</data>
<flag name="review"
          id="356451"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338153</attachid>
            <date>2018-04-17 14:55:16 -0700</date>
            <delta_ts>2018-04-17 16:48:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-A-property-isn-t-existing-if-we-transition-a-structu.patch</filename>
            <type>text/plain</type>
            <size>6984</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAwYzRjNWYxODMwNTViYjc5Njg4MGI2NDVlOTUzMzc3ZWJmMzMyOWI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDE3IEFwciAyMDE4IDE0OjI5OjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQSBwcm9w
ZXJ0eSBpc24ndCBleGlzdGluZyBpZiB3ZSB0cmFuc2l0aW9uIGEgc3RydWN0dXJlCgotLS0KIEpT
VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxICsr
KysrKysrKysrKysrKysrKysrKwogLi4uL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXN0cmljdC10
cmFuc2l0aW9uLmpzICAgIHwgMTMgKysrKysrKysrKysrKwogSlNUZXN0cy9zdHJlc3MvcHV0LWJ5
LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzICAgICAgIHwgMTEgKysrKysrKysrKysKIC4uLi9wdXQt
Z2V0dGVyLXNldHRlci1ieS1pZC1zdHJpY3QtdHJhbnNpdGlvbi5qcyAgICB8IDEzICsrKysrKysr
KysrKysKIC4uLi9zdHJlc3MvcHV0LWdldHRlci1zZXR0ZXItYnktaWQtdHJhbnNpdGlvbi5qcyAg
ICB8IDExICsrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggICAgIHwgMTAgKysrKysrLS0tLQogNyBmaWxlcyBj
aGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IEpTVGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRpb24uanMK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXRyYW5z
aXRpb24uanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9wdXQtZ2V0dGVyLXNl
dHRlci1ieS1pZC1zdHJpY3QtdHJhbnNpdGlvbi5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IEpTVGVz
dHMvc3RyZXNzL3B1dC1nZXR0ZXItc2V0dGVyLWJ5LWlkLXRyYW5zaXRpb24uanMKCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEzYTI2NDMu
LjgzMTRmYWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDQtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3Rp
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIEEgcHV0IGlzIG5vdCBhbiBFeGlzdGluZ1Byb3BlcnR5
IHB1dCB3aGVuIHdlIHRyYW5zaXRpb24gYSBzdHJ1Y3R1cmUgYmVjYXVzZSBvZiBhbiBhdHRyaWJ1
dGVzIGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0NzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODg3MTQ1MT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIHN0cmVzcy9wdXQtYnktaWQtZGly
ZWN0LXN0cmljdC10cmFuc2l0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0LmZvbyk6Cisg
ICAgICAgIChqLmNvbnN0Lm9iai5zZXQgaGVsbG8pOgorICAgICAgICAqIHN0cmVzcy9wdXQtYnkt
aWQtZGlyZWN0LXRyYW5zaXRpb24uanM6IEFkZGVkLgorICAgICAgICAoY29uc3QuZm9vKToKKyAg
ICAgICAgKGouY29uc3Qub2JqLnNldCBoZWxsbyk6CisgICAgICAgICogc3RyZXNzL3B1dC1nZXR0
ZXItc2V0dGVyLWJ5LWlkLXN0cmljdC10cmFuc2l0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNv
bnN0LmZvbyk6CisgICAgICAgIChqLmNvbnN0Lm9iai5zZXQgaGVsbG8pOgorICAgICAgICAqIHN0
cmVzcy9wdXQtZ2V0dGVyLXNldHRlci1ieS1pZC10cmFuc2l0aW9uLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGNvbnN0LmZvbyk6CisgICAgICAgIChqLmNvbnN0Lm9iai5zZXQgaGVsbG8pOgorCiAyMDE4
LTA0LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRnVuY3Rp
b24ucHJvdG90eXBlLmNhbGxlciBzaG91bGRuJ3QgcmV0dXJuIGdlbmVyYXRvciBib2RpZXMKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3B1dC1ieS1pZC1kaXJlY3Qtc3RyaWN0LXRyYW5zaXRp
b24uanMgYi9KU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0aW9u
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NTE2MTcKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtZGlyZWN0LXN0cmljdC10cmFuc2l0
aW9uLmpzCkBAIC0wLDAgKzEsMTMgQEAKKyJ1c2Ugc3RyaWN0IgorCitsZXQgdGhlZ2xvYmFsID0g
MDsKK2ZvciAodGhlZ2xvYmFsID0gMDsgdGhlZ2xvYmFsIDwgMTAwMDAwOyArK3RoZWdsb2JhbCkK
KyAgICA7Citjb25zdCBmb28gPSAoaWdub3JlZCwgYXJnMSkgPT4geyB0aGVnbG9iYWwgPSBhcmcx
OyB9OworZm9yIChsZXQgaiA9IDA7IGogPCAxMDAwMDsgKytqKSB7CisgICAgY29uc3Qgb2JqID0g
eworICAgICAgICBzZXQgaGVsbG8oaWdub3JlZCkge30sCisgICAgICAgIFt0aGVnbG9iYWxdOiAw
CisgICAgfTsKKyAgICBmb28ob2JqLCAnaGVsbG8nKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3B1dC1ieS1pZC1kaXJlY3QtdHJhbnNpdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3B1
dC1ieS1pZC1kaXJlY3QtdHJhbnNpdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MTFmOGVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcHV0LWJ5
LWlkLWRpcmVjdC10cmFuc2l0aW9uLmpzCkBAIC0wLDAgKzEsMTEgQEAKK2xldCB0aGVnbG9iYWwg
PSAwOworZm9yICh0aGVnbG9iYWwgPSAwOyB0aGVnbG9iYWwgPCAxMDAwMDA7ICsrdGhlZ2xvYmFs
KQorICAgIDsKK2NvbnN0IGZvbyA9IChpZ25vcmVkLCBhcmcxKSA9PiB7IHRoZWdsb2JhbCA9IGFy
ZzE7IH07Citmb3IgKGxldCBqID0gMDsgaiA8IDEwMDAwOyArK2opIHsKKyAgICBjb25zdCBvYmog
PSB7CisgICAgICAgIHNldCBoZWxsbyhpZ25vcmVkKSB7fSwKKyAgICAgICAgW3RoZWdsb2JhbF06
IDAKKyAgICB9OworICAgIGZvbyhvYmosICdoZWxsbycpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvcHV0LWdldHRlci1zZXR0ZXItYnktaWQtc3RyaWN0LXRyYW5zaXRpb24uanMgYi9K
U1Rlc3RzL3N0cmVzcy9wdXQtZ2V0dGVyLXNldHRlci1ieS1pZC1zdHJpY3QtdHJhbnNpdGlvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWJkNDRlCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcHV0LWdldHRlci1zZXR0ZXItYnktaWQtc3RyaWN0LXRy
YW5zaXRpb24uanMKQEAgLTAsMCArMSwxMyBAQAorInVzZSBzdHJpY3QiCisKK2xldCB0aGVnbG9i
YWwgPSAwOworZm9yICh0aGVnbG9iYWwgPSAwOyB0aGVnbG9iYWwgPCAxMDAwMDA7ICsrdGhlZ2xv
YmFsKQorICAgIDsKK2NvbnN0IGZvbyA9IChpZ25vcmVkLCBhcmcxKSA9PiB7IHRoZWdsb2JhbCA9
IGFyZzE7IH07Citmb3IgKGxldCBqID0gMDsgaiA8IDEwMDAwOyArK2opIHsKKyAgICBjb25zdCBv
YmogPSB7CisgICAgICAgIFt0aGVnbG9iYWxdOiAwLAorICAgICAgICBzZXQgaGVsbG8oaWdub3Jl
ZCkge30KKyAgICB9OworICAgIGZvbyhvYmosICdoZWxsbycpOworfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvcHV0LWdldHRlci1zZXR0ZXItYnktaWQtdHJhbnNpdGlvbi5qcyBiL0pTVGVz
dHMvc3RyZXNzL3B1dC1nZXR0ZXItc2V0dGVyLWJ5LWlkLXRyYW5zaXRpb24uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY4M2NjZAotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3B1dC1nZXR0ZXItc2V0dGVyLWJ5LWlkLXRyYW5zaXRpb24uanMKQEAgLTAs
MCArMSwxMSBAQAorbGV0IHRoZWdsb2JhbCA9IDA7Citmb3IgKHRoZWdsb2JhbCA9IDA7IHRoZWds
b2JhbCA8IDEwMDAwMDsgKyt0aGVnbG9iYWwpCisgICAgOworY29uc3QgZm9vID0gKGlnbm9yZWQs
IGFyZzEpID0+IHsgdGhlZ2xvYmFsID0gYXJnMTsgfTsKK2ZvciAobGV0IGogPSAwOyBqIDwgMTAw
MDA7ICsraikgeworICAgIGNvbnN0IG9iaiA9IHsKKyAgICAgICAgW3RoZWdsb2JhbF06IDAsCisg
ICAgICAgIHNldCBoZWxsbyhpZ25vcmVkKSB7fQorICAgIH07CisgICAgZm9vKG9iaiwgJ2hlbGxv
Jyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjFkMzhhLi4zNTc3N2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xNyAgSkYgQmFz
dGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAgQSBwdXQgaXMgbm90IGFuIEV4
aXN0aW5nUHJvcGVydHkgcHV0IHdoZW4gd2UgdHJhbnNpdGlvbiBhIHN0cnVjdHVyZSBiZWNhdXNl
IG9mIGFuIGF0dHJpYnV0ZXMgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODQ3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4ODcxNDUx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIFdoZW4gcHV0
dGluZyBhIHByb3BlcnR5IG9uIGEgc3RydWN0dXJlIGFuZCB0aGUgc2xvdCBpcyBhIGRpZmZlcmVu
dAorICAgICAgICB0eXBlLCB0aGUgc2xvdCBjYW4ndCBiZSBzYWlkIHRvIGhhdmUgYWxyZWFkeSBi
ZWVuIGV4aXN0aW5nLgorCisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKToKKwogMjAxOC0wNC0xNCAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZ1bmN0aW9uLnByb3Rv
dHlwZS5jYWxsZXIgc2hvdWxkbid0IHJldHVybiBnZW5lcmF0b3IgYm9kaWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCmluZGV4IDc5NGVlMjAu
LjVlMjcwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
SW5saW5lcy5oCkBAIC0yODcsMTIgKzI4NywxMyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmpl
Y3Q6OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQog
CiAgICAgICAgICAgICBwdXREaXJlY3Qodm0sIG9mZnNldCwgdmFsdWUpOwogICAgICAgICAgICAg
c3RydWN0dXJlLT5kaWRSZXBsYWNlUHJvcGVydHkob2Zmc2V0KTsKLSAgICAgICAgICAgIHNsb3Qu
c2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogCiAgICAgICAgICAgICBpZiAoKGF0
dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpICE9IChjdXJyZW50QXR0cmli
dXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgfHwgKGF0dHJpYnV0ZXMgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpICE9IChjdXJyZW50QXR0cmlidXRlcyAmIFBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpIHsKICAgICAgICAgICAgICAgICBBU1NF
UlQoIShhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgICAg
ICAgICAgICAgc2V0U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5z
aXRpb24odm0sIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzbG90LnNldEV4aXN0
aW5nUHJvcGVydHkodGhpcywgb2Zmc2V0KTsKKwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KIApAQCAtMzQ0LDEzICszNDUsMTQgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2Jq
ZWN0OjpwdXREaXJlY3RJbnRlcm5hbChWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUK
ICAgICAgICAgICAgICAgICB2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdC5jb250ZXh0KCkg
PT0gUHV0UHJvcGVydHlTbG90OjpQdXRCeUlkKTsKICAgICAgICAgfQogCi0gICAgICAgIHNsb3Qu
c2V0RXhpc3RpbmdQcm9wZXJ0eSh0aGlzLCBvZmZzZXQpOwogICAgICAgICBwdXREaXJlY3Qodm0s
IG9mZnNldCwgdmFsdWUpOwogCiAgICAgICAgIGlmICgoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0
cmlidXRlOjpBY2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yKSB8fCAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvcikgIT0gKGN1cnJlbnRBdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yKSkgewogICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSkpOwogICAgICAgICAgICAgc2V0U3RydWN0dXJlKHZtLCBTdHJ1
Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSwgcHJvcGVydHlO
YW1lLCBhdHRyaWJ1dGVzKSk7Ci0gICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBzbG90LnNldEV4aXN0aW5nUHJvcGVydHkodGhpcywgb2Zmc2V0KTsKKwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLS0gCjIuMTAuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>