<?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>168605</bug_id>
          
          <creation_ts>2017-02-20 09:44:35 -0800</creation_ts>
          <short_desc>ASSERTION FAILED: &quot;!scope.exception()&quot; with Object.isSealed/isFrozen and uninitialized module bindings</short_desc>
          <delta_ts>2017-02-21 07:14:17 -0800</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 Local 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="André Bargull">andre.bargull</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278966</commentid>
    <comment_count>0</comment_count>
    <who name="André Bargull">andre.bargull</who>
    <bug_when>2017-02-20 09:44:35 -0800</bug_when>
    <thetext>Revision: 212634

Test case, t.js:
---
import* as self from &quot;./t.js&quot;;

Object.isSealed(self);

Object.isFrozen(self);

export let a;
export function b(){}
---

Triggers this assertion:
---
ASSERTION FAILED: !scope.exception()
../../Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp(130) : static bool JSC::JSModuleNamespaceObject::getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;)
---

Stacktrace:
---
#0  0x00007ffff6dc6f98 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:323
#1  0x00007ffff6bc9856 in JSC::JSModuleNamespaceObject::getOwnPropertySlot (cell=0x7fffaef88110, exec=0x7fffffffca10, propertyName=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp:130
#2  0x00007ffff6be471d in JSC::JSObject::getOwnPropertyDescriptor (this=0x7fffaef88110, exec=0x7fffffffca10, propertyName=..., descriptor=...) at ../../Source/JavaScriptCore/runtime/JSObject.cpp:3187
#3  0x00007ffff6c626b3 in JSC::objectConstructorIsSealed (exec=0x7fffffffca10) at ../../Source/JavaScriptCore/runtime/ObjectConstructor.cpp:642
...
---</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279255</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-21 00:16:24 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Revision: 212634
&gt; 
&gt; Test case, t.js:
&gt; ---
&gt; import* as self from &quot;./t.js&quot;;
&gt; 
&gt; Object.isSealed(self);
&gt; 
&gt; Object.isFrozen(self);
&gt; 
&gt; export let a;
&gt; export function b(){}
&gt; ---
&gt; 
&gt; Triggers this assertion:
&gt; ---
&gt; ASSERTION FAILED: !scope.exception()
&gt; ../../Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp(130) :
&gt; static bool JSC::JSModuleNamespaceObject::getOwnPropertySlot(JSC::JSObject*,
&gt; JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;)
&gt; ---
&gt; 
&gt; Stacktrace:
&gt; ---
&gt; #0  0x00007ffff6dc6f98 in WTFCrash () at
&gt; ../../Source/WTF/wtf/Assertions.cpp:323
&gt; #1  0x00007ffff6bc9856 in JSC::JSModuleNamespaceObject::getOwnPropertySlot
&gt; (cell=0x7fffaef88110, exec=0x7fffffffca10, propertyName=..., slot=...)
&gt;     at ../../Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp:130
&gt; #2  0x00007ffff6be471d in JSC::JSObject::getOwnPropertyDescriptor
&gt; (this=0x7fffaef88110, exec=0x7fffffffca10, propertyName=..., descriptor=...)
&gt; at ../../Source/JavaScriptCore/runtime/JSObject.cpp:3187
&gt; #3  0x00007ffff6c626b3 in JSC::objectConstructorIsSealed
&gt; (exec=0x7fffffffca10) at
&gt; ../../Source/JavaScriptCore/runtime/ObjectConstructor.cpp:642
&gt; ...
&gt; ---

OK, this is because objectConstrutorIsFrozen does not check the error state when iterating property names. I&apos;ll upload the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279260</commentid>
    <comment_count>2</comment_count>
      <attachid>302240</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-21 00:25:21 -0800</bug_when>
    <thetext>Created attachment 302240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279262</commentid>
    <comment_count>3</comment_count>
      <attachid>302240</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-02-21 00:27:27 -0800</bug_when>
    <thetext>Comment on attachment 302240
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:643
&gt; +        RETURN_IF_EXCEPTION(scope, encodedJSValue());

Style: you can use  &quot;{ }&quot; instead of &quot;encodedJSValue()&quot;

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:684
&gt; +        RETURN_IF_EXCEPTION(scope, encodedJSValue());

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279282</commentid>
    <comment_count>4</comment_count>
      <attachid>302240</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-21 01:06:24 -0800</bug_when>
    <thetext>Comment on attachment 302240
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:643
&gt;&gt; +        RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt; 
&gt; Style: you can use  &quot;{ }&quot; instead of &quot;encodedJSValue()&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:684
&gt;&gt; +        RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt; 
&gt; ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279283</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-02-21 01:09:30 -0800</bug_when>
    <thetext>Committed r212710: &lt;http://trac.webkit.org/changeset/212710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279314</commentid>
    <comment_count>6</comment_count>
      <attachid>302240</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-21 07:14:17 -0800</bug_when>
    <thetext>Comment on attachment 302240
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:643
&gt;&gt;&gt; +        RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt;&gt; 
&gt;&gt; Style: you can use  &quot;{ }&quot; instead of &quot;encodedJSValue()&quot;
&gt; 
&gt; Fixed.

Actually, returning encodedJSValue() is the right thing to do because {} returns double 0 on 32-bit instead of the empty value.  That said, this is an error condition, and the client really shouldn&apos;t be using the returned value.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302240</attachid>
            <date>2017-02-21 00:25:21 -0800</date>
            <delta_ts>2017-02-21 00:27:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168605-20170221172236.patch</filename>
            <type>text/plain</type>
            <size>4531</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NjYxZmRiZWJkOTFmNzkwODU1NTUzNDRkNGE4NzBjNmQ0YjlmYmJkLi5iNGY4NGQ0NmY0MDlmNDJh
OTdkOTdhOGY5MDhkYjEwMDQwNjhhZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wMi0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAiIXNjb3BlLmV4Y2VwdGlvbigpIiB3
aXRoIE9iamVjdC5pc1NlYWxlZC9pc0Zyb3plbiBhbmQgdW5pbml0aWFsaXplZCBtb2R1bGUgYmlu
ZGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
ODYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IHNob3VsZCBjaGVjayBleGNlcHRpb24gc3RhdGUgYWZ0ZXIgY2FsbGluZyBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoKSBzaW5jZSBpdCBjYW4gdGhyb3cgZXJyb3JzLgorCisgICAgICAgICogcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVj
dG9ySXNTZWFsZWQpOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKToK
KwogMjAxNy0wMi0yMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
W1JlLWxhbmRpbmddIENhY2hlZENhbGwgc2hvdWxkIGxldCBHQyBrbm93IHRvIGtlZXAgaXRzIGFy
Z3VtZW50cyBhbGl2ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBjMjlhYWQzNzU5NzkyMmZlNmE1ZmI4Zjc5YzhjMDRh
OTNhODU5MTg5Li5lYTdmNzI0OTc1NTYzY2ZjNWY1MTViNDFhMzY1MjgwNTczZTcyZTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCkBAIC02MzksNyArNjM5LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvcklzU2VhbGVkKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAvLyBhLiBMZXQgZGVzYyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhl
IFtbR2V0T3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgTyB3aXRoIFAuCiAgICAgICAg
IFByb3BlcnR5RGVzY3JpcHRvciBkZXNjOwotICAgICAgICBpZiAoIW9iamVjdC0+Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzYykpCisgICAgICAgIGJvb2wg
ZGlkR2V0RGVzY3JpcHRvciA9IG9iamVjdC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzYyk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBpZiAoIWRpZEdldERlc2NyaXB0b3IpCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgLy8gYi4gSWYgZGVzYy5bW0NvbmZpZ3VyYWJsZV1d
IGlzIHRydWUsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgICAgICBpZiAoZGVzYy5jb25maWd1cmFi
bGUoKSkKQEAgLTY3OCw3ICs2ODAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdENvbnN0cnVjdG9ySXNGcm96ZW4oRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIC8vIGEuIExldCBkZXNjIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0
aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBPIHdpdGggUC4KICAgICAg
ICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2M7Ci0gICAgICAgIGlmICghb2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjKSkKKyAgICAgICAgYm9v
bCBkaWRHZXREZXNjcmlwdG9yID0gb2JqZWN0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhl
YywgcHJvcGVydHlOYW1lLCBkZXNjKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIGlmICghZGlkR2V0RGVzY3JpcHRvcikKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAvLyBiLiBJZiBJc0RhdGFEZXNjcmlwdG9yKGRl
c2MpIGlzIHRydWUgdGhlbgogICAgICAgICAvLyBpLiBJZiBkZXNjLltbV3JpdGFibGVdXSBpcyB0
cnVlLCByZXR1cm4gZmFsc2UuIGMuIElmIGRlc2MuW1tDb25maWd1cmFibGVdXSBpcyB0cnVlLCB0
aGVuIHJldHVybiBmYWxzZS4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggODYxYmJjYzZmOTFiODY0ODUzMTc4M2YwNWMyZDMwMmVhMjA3YjUw
Yi4uYjQxMTBkYzhiMjBlZWIyMGJlZDBlZDRhYjMxMGQwYzYxYWJkYjZiOCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxNy0wMi0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAiIXNjb3BlLmV4Y2VwdGlvbigpIiB3aXRoIE9iamVj
dC5pc1NlYWxlZC9pc0Zyb3plbiBhbmQgdW5pbml0aWFsaXplZCBtb2R1bGUgYmluZGluZ3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODYwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbW9kdWxlcy9t
b2R1bGUtbmFtZXNwYWNlLWlzLWZyb3plbi5qczogQWRkZWQuCisgICAgICAgIChmcm9tLnN0cmlu
Z19hcHBlYXJlZF9oZXJlLnNob3VsZFRocm93KToKKyAgICAgICAgKGV4cG9ydC5iKToKKyAgICAg
ICAgKiBtb2R1bGVzL21vZHVsZS1uYW1lc3BhY2UtaXMtc2VhbGVkLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZyb20uc3RyaW5nX2FwcGVhcmVkX2hlcmUuc2hvdWxkVGhyb3cpOgorICAgICAgICAoZXhw
b3J0LmIpOgorCiAyMDE3LTAyLTE5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjEyNDY2LgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9tb2R1bGVzL21vZHVsZS1uYW1lc3BhY2UtaXMtZnJvemVuLmpzIGIvSlNU
ZXN0cy9tb2R1bGVzL21vZHVsZS1uYW1lc3BhY2UtaXMtZnJvemVuLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MTI3MTBlODQwZmJmYjM3N2YzNTg4ZDRkNTcxYjcwYjRjYzUzY2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL21vZHVsZXMvbW9kdWxlLW5hbWVzcGFjZS1pcy1mcm96ZW4uanMKQEAgLTAsMCAr
MSw5IEBACitpbXBvcnQgKiBhcyBucyBmcm9tICIuL21vZHVsZS1uYW1lc3BhY2UtaXMtZnJvemVu
LmpzIgoraW1wb3J0IHtzaG91bGRUaHJvd30gZnJvbSAiLi9yZXNvdXJjZXMvYXNzZXJ0LmpzIgor
CitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgT2JqZWN0LmlzRnJvemVuKG5zKTsKK30sIGBSZWZl
cmVuY2VFcnJvcjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLmApOworCitl
eHBvcnQgbGV0IGE7CitleHBvcnQgZnVuY3Rpb24gYiAoKSB7IH0KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvbW9kdWxlcy9tb2R1bGUtbmFtZXNwYWNlLWlzLXNlYWxlZC5qcyBiL0pTVGVzdHMvbW9kdWxl
cy9tb2R1bGUtbmFtZXNwYWNlLWlzLXNlYWxlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2EwZGVmMDBhYjNi
MTE2NDNhNmUyZDJlOWM3M2Y0MzFjODBhMjY4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9t
b2R1bGVzL21vZHVsZS1uYW1lc3BhY2UtaXMtc2VhbGVkLmpzCkBAIC0wLDAgKzEsOSBAQAoraW1w
b3J0ICogYXMgbnMgZnJvbSAiLi9tb2R1bGUtbmFtZXNwYWNlLWlzLXNlYWxlZC5qcyIKK2ltcG9y
dCB7c2hvdWxkVGhyb3d9IGZyb20gIi4vcmVzb3VyY2VzL2Fzc2VydC5qcyIKKworc2hvdWxkVGhy
b3coKCkgPT4geworICAgIE9iamVjdC5pc1NlYWxlZChucyk7Cit9LCBgUmVmZXJlbmNlRXJyb3I6
IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworZXhwb3J0IGxldCBh
OworZXhwb3J0IGZ1bmN0aW9uIGIgKCkgeyB9Cg==
</data>
<flag name="review"
          id="323962"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>