<?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>164114</bug_id>
          
          <creation_ts>2016-10-28 02:10:56 -0700</creation_ts>
          <short_desc>DOMStringMap reports properties as non-enumerable</short_desc>
          <delta_ts>2016-10-28 16:56:25 -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>DOM</component>
          <version>Safari 10</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245498</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2016-10-28 02:10:56 -0700</bug_when>
    <thetext>Consider the following HTML: `&lt;div id=map data-size=16&gt;&lt;/div&gt;`.

In Chrome and Firefox, `Object.getOwnPropertyDescriptor(map.dataset, &quot;zoom&quot;).enumerable` is `true`.
In Safari it is `false`, but &quot;zoom&quot; gets listed by `Object.keys`.
However, it does not work with `Object.assign` and also reports `false` in `propertyIsEnumerable` check.

From user-land perspective, this disables neat `Object.assign(el1.dataset, el2.dataset)` trick.
For the sake of web compatibility and developer experience, I think Safari should match behavior of other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245828</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-28 15:28:40 -0700</bug_when>
    <thetext>Relevant specs:
- https://heycam.github.io/webidl/#getownproperty-guts (2.7-9)
&quot;&quot;&quot;
If O implements an interface with a named property setter, then set desc.[[Writable]] to true, otherwise set it to false.
If O implements an interface with the [LegacyUnenumerableNamedProperties] extended attribute, then set desc.[[Enumerable]] to false, otherwise set it to true.
Set desc.[[Configurable]] to true.
&quot;&quot;&quot;

- https://html.spec.whatwg.org/multipage/dom.html#domstringmap
Interface is not marked as [LegacyUnenumerableNamedProperties].

So I believe the DOMStringMap&apos;s named properties should be Configurable, Enumerable and Writable (because there is a named setter).

We currently do the complete opposite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245842</commentid>
    <comment_count>2</comment_count>
      <attachid>293237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-28 15:54:12 -0700</bug_when>
    <thetext>Created attachment 293237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245872</commentid>
    <comment_count>3</comment_count>
      <attachid>293237</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-28 16:56:21 -0700</bug_when>
    <thetext>Comment on attachment 293237
Patch

Clearing flags on attachment: 293237

Committed r208083: &lt;http://trac.webkit.org/changeset/208083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245873</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-28 16:56:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293237</attachid>
            <date>2016-10-28 15:54:12 -0700</date>
            <delta_ts>2016-10-28 16:56:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164114-20161028155021.patch</filename>
            <type>text/plain</type>
            <size>5099</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E2Zjc4MWNlOTgyYjA5
M2MxZTVlYzJlODg5YThiMjQ2MDBmZDkxYy4uNjFmZWU1MGFiZjAwMjc2NDVhOGEyNjZkODBiYzNl
NjMxYmI3NzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NU3RyaW5nTWFwIHJlcG9y
dHMgcHJvcGVydGllcyBhcyBub24tZW51bWVyYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRE9NU3RyaW5nTWFwJ3MgbmFtZWQgcHJvcGVydGllcyBz
aG91bGQgYmUgY29uZmlndXJhYmxlLCBlbnVtZXJhYmxlCisgICAgICAgIGFuZCB3cml0YWJsZSBh
cyBwZXI6CisgICAgICAgIC0gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZ2V0b3du
cHJvcGVydHktZ3V0cyAoMi43LTkpCisgICAgICAgIC0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tc3RyaW5nbWFwCisKKyAgICAgICAgRmlyZWZveCBh
bmQgQ2hyb21lIGFncmVlIHdpdGggdGhlIHNwZWNpZmljYXRpb24uIEhvd2V2ZXIsIFdlYktpdAor
ICAgICAgICB3YXMgZG9pbmcgdGhlIGNvbXBsZXRlIG9wcG9zaXRlLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01TdHJpbmdNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdN
YXA6OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKToKKwogMjAxNi0xMC0yOCAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWJJRExdIFVwZGF0ZSBwYXJzZXIgYW5k
IGNvZGUgZ2VuZXJhdG9ycyB0byBvbmx5IGFjY2VzcyB0eXBlIGluZm9ybWF0aW9uIHRocm91Z2gg
dGhlIHR5cGUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAppbmRleCA3NjA5YzI3NWNkZWE1MmRkNjc5MzRkN2I2Nzgx
MTU4OGNhYmE2ZGQxLi4yZWE5MjdhNWJhNTY3MDI5YjU2ZDU2YzljMDkyNWFkZmIzMGVkZGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0
b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgSlNET01TdHJpbmdNYXA6OmdldE93blByb3Bl
cnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByCiAgICAgYm9v
bCBuYW1lSXNWYWxpZDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGl0ZW0gPSB3cmFwcGVkKCku
aXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBuYW1lSXNWYWxpZCk7CiAg
ICAgaWYgKG5hbWVJc1ZhbGlkKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgUmVhZE9u
bHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIHRvSlM8SURMRE9NU3RyaW5nPigqZXhlYywgaXRl
bSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXMsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigq
ZXhlYywgaXRlbSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGQyMDJhNGU1Yjk0NTZmNzFlOTkwOWU1ODJjZTczMGY1MmY3MDQxZjIuLmZi
YjBiNjBkMjUzMWEyYmFjNTk5MDI4OWU3NmVhYjg5MDZhZmY1NGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNi0xMC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIERPTVN0cmluZ01hcCByZXBvcnRzIHByb3BlcnRpZXMgYXMgbm9uLWVudW1lcmFibGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDExNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleGlz
dGluZyB0ZXN0IHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9k
b20vZGF0YXNldC1uYW1lLWdldHRlci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMuaHRtbDoKKwogMjAxNi0x
MC0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBX
cm9uZyBibHVyIHJhZGl1cyBmb3IgZmlsdGVyOiBkcm9wLXNoYWRvdygpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZGF0YXNldC1uYW1lLWdldHRlci1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAppbmRleCAzZjJhMzJhMzE2ZTBjZGU4Y2QzYWZjMGZhN2EyM2U2ZjQ1
MTM1NWM1Li44M2Y5NTQzYzM3OGZmYTk1MWEyZTMyNjdiYzA0NTFlZGNhNjJmMzQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RhdGFzZXQtbmFtZS1nZXR0
ZXItcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTMsOSArMyw5IEBAIFRlc3QgdGhlIEphdmFT
Y3JpcHQgcHJvcGVydHkgZGVzY3JpcHRvciBvZiB0aGUgbmFtZSBnZXR0ZXIuCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykuY29uZmlndXJhYmxlIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5k
YXRhc2V0LCAnd2Via2l0Um9ja3MnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5kYXRhc2V0LCAnd2Via2l0Um9j
a3MnKS53cml0YWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykuY29uZmlndXJhYmxlIGlz
IHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5
LmRhdGFzZXQsICd3ZWJraXRSb2NrcycpLmVudW1lcmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJv
Y2tzJykud3JpdGFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykudmFsdWUgaXMgInllcyIK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZGF0YXNldC1uYW1lLWdldHRlci1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMuaHRtbAppbmRleCBj
MmJlNjkxMWJlOTBiZTQ0MmZlNzkzYjU2ZmRmZWU0YjY3MTgxYjkxLi4yNTBjMTZiNTg5MDYyMjdk
NmU1ZmYwNWVjZmUxM2RjNjhjMjNhYTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kYXRhc2V0LW5hbWUtZ2V0dGVyLXByb3BlcnRpZXMuaHRtbApAQCAtNyw5ICs3LDkg
QEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbignVGVzdCB0aGUgSmF2YVNjcmlwdCBwcm9wZXJ0eSBk
ZXNjcmlwdG9yIG9mIHRoZSBuYW1lIGdldHRlci4nKTsKIAotc2hvdWxkQmUoIk9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5kYXRhc2V0LCAnd2Via2l0Um9ja3Mn
KS5jb25maWd1cmFibGUiLCAnZmFsc2UnKTsKLXNob3VsZEJlKCJPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykuZW51bWVy
YWJsZSIsICdmYWxzZScpOwotc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuYm9keS5kYXRhc2V0LCAnd2Via2l0Um9ja3MnKS53cml0YWJsZSIsICdmYWxz
ZScpOworc2hvdWxkQmVUcnVlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3Vt
ZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykuY29uZmlndXJhYmxlIik7CitzaG91bGRC
ZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5kYXRh
c2V0LCAnd2Via2l0Um9ja3MnKS5lbnVtZXJhYmxlIik7CitzaG91bGRCZVRydWUoIk9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5kYXRhc2V0LCAnd2Via2l0Um9j
a3MnKS53cml0YWJsZSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuZGF0YXNldCwgJ3dlYmtpdFJvY2tzJykudmFs
dWUiLCAneWVzJyk7CiAKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>