<?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>180139</bug_id>
          
          <creation_ts>2017-11-29 05:56:56 -0800</creation_ts>
          <short_desc>[ESNext] Enables a way to throw an error on ByteCodeGenerator step</short_desc>
          <delta_ts>2020-01-16 23:17:16 -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 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="Caio Lima">ticaiolima</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375789</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2017-11-29 05:56:56 -0800</bug_when>
    <thetext>When generating bytecode into ByteCodeGenerator, we aren&apos;t considering cases where we doesn&apos;t have memory for constants like String. The same is true for BigInt, but we could throw OOM instead of use RELEASE_ASSERT in such cases. Here is a sample of program that crashes due to OOM.

```
var longStr = &quot;f&quot;;
for (var i = 0; i &lt; 30; ++i)
    longStr = longStr + longStr;

let sub = longStr.substring(0, longStr.length - 4)
let mscript = &quot;0x&quot; + longStr + sub + &quot;n&quot;;

eval(mscript);
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607754</commentid>
    <comment_count>1</comment_count>
      <attachid>387982</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-16 16:33:19 -0800</bug_when>
    <thetext>Created attachment 387982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607755</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-16 16:34:25 -0800</bug_when>
    <thetext>rdar://problem/58160800</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607779</commentid>
    <comment_count>3</comment_count>
      <attachid>387982</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-16 16:48:03 -0800</bug_when>
    <thetext>Comment on attachment 387982
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:125
&gt; +        return generator.emitThrowExpressionTooDeepException();

It&apos;s hokey that we use &quot;ExpressionTooDeepException&quot; to mean OutOfMemoryError.  Maybe we should change this later (in another patch) especially now that we&apos;re using in a case that has nothing to do with recursing into nested expressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607879</commentid>
    <comment_count>4</comment_count>
      <attachid>387982</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 23:16:40 -0800</bug_when>
    <thetext>Comment on attachment 387982
Patch

Clearing flags on attachment: 387982

Committed r254738: &lt;https://trac.webkit.org/changeset/254738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607880</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 23:16:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607881</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-16 23:17:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/58673144&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387982</attachid>
            <date>2020-01-16 16:33:19 -0800</date>
            <delta_ts>2020-01-16 23:16:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch180139</filename>
            <type>text/plain</type>
            <size>4455</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MWEwYTUyOTczZTkuLjc5YTA5M2I1ZTNkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTE2ICBSb2Jp
biBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gRW5h
YmxlcyBhIHdheSB0byB0aHJvdyBhbiBlcnJvciBvbiBCeXRlQ29kZUdlbmVyYXRvciBzdGVwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxMzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9l
dmFsLWh1Z2UtYmlnLWludC1tZW1vcnktb3ZlcmZsb3cuanM6IEFkZGVkLgorCiAyMDIwLTAxLTE2
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBvcGVyYXRpb25Ub09i
amVjdCgpIHNob3VsZCBjaGVjayBmb3IgYSBudWxsIGVycm9yTWVzc2FnZS4KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2V2YWwtaHVnZS1iaWctaW50LW1lbW9yeS1vdmVyZmxvdy5qcyBiL0pT
VGVzdHMvc3RyZXNzL2V2YWwtaHVnZS1iaWctaW50LW1lbW9yeS1vdmVyZmxvdy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTNmNDg4ZDc5MTAKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9ldmFsLWh1Z2UtYmlnLWludC1tZW1vcnktb3ZlcmZsb3cu
anMKQEAgLTAsMCArMSw1IEBACisvL0AgaWYgJG1lbW9yeUxpbWl0ZWQgdGhlbiBza2lwIGVsc2Ug
cnVuRGVmYXVsdCBlbmQKKwordHJ5IHsKKyAgICBldmFsKCcxJy5yZXBlYXQoMioqMjApKyduJyk7
Cit9IGNhdGNoIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBlZjE4MmQwNmI3OS4uYTVj
ZDc1MDEyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIw
LTAxLTE2ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0VTTmV4dF0gRW5hYmxlcyBhIHdheSB0byB0aHJvdyBhbiBlcnJvciBvbiBCeXRlQ29kZUdlbmVy
YXRvciBzdGVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODAxMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGEgbWluaW1hbCBmaXggdGhhdCBvbmx5IGRlYWxzIHdpdGggb3Zlcmx5IGh1Z2Ug
QmlnSW50cy4KKyAgICAgICAgQSBtb3JlIHRob3JvdWdoIHNvbHV0aW9uIGlzIHJhdGhlciBsb3cg
cHJpb3JpdHkgKHNpbmNlIGl0IGhhcyBuZWl0aGVyIHNlY3VyaXRpZXMgbm9yIHBlcmZvcm1hbmNl
IGltcGFjdCkuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6YWRkQmlnSW50Q29uc3RhbnQpOgor
ICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpD
b25zdGFudE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5j
cHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpwYXJzZUludCk6CisKIDIwMjAtMDEtMTYgIERv
biBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmll
ZCBidWlsZCBmaXhlcyBtaWQgSmFudWFyeSAyMDIwIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5k
ZXggOTEwMWQxMGRkOGUuLmQ4ZTkyYzQ0MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjg4MCwx
MCArMjg4MCw3IEBAIEpTVmFsdWUgQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZEJpZ0ludENvbnN0YW50
KGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIHVpbnQ4CiAgICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKCkpOwogICAgICAgICBhdXRvIHBhcnNlSW50U2lnbiA9
IHNpZ24gPyBKU0JpZ0ludDo6UGFyc2VJbnRTaWduOjpTaWduZWQgOiBKU0JpZ0ludDo6UGFyc2VJ
bnRTaWduOjpVbnNpZ25lZDsKICAgICAgICAgSlNCaWdJbnQqIGJpZ0ludEluTWFwID0gSlNCaWdJ
bnQ6OnBhcnNlSW50KG51bGxwdHIsIHZtKCksIGlkZW50aWZpZXIuc3RyaW5nKCksIHJhZGl4LCBK
U0JpZ0ludDo6RXJyb3JQYXJzZU1vZGU6OlRocm93RXhjZXB0aW9ucywgcGFyc2VJbnRTaWduKTsK
LSAgICAgICAgLy8gRklYTUU6IFtFU05leHRdIEVuYWJsZXMgYSB3YXkgdG8gdGhyb3cgYW4gZXJy
b3Igb24gQnl0ZUNvZGVHZW5lcmF0b3Igc3RlcAotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMTM5CiAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhj
ZXB0aW9uKCk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGJpZ0ludEluTWFwKTsKICAgICAgICAg
YWRkQ29uc3RhbnRWYWx1ZShiaWdJbnRJbk1hcCk7CiAKICAgICAgICAgcmV0dXJuIGJpZ0ludElu
TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCmluZGV4IGI2MTIwMGE1OTFmLi5hYjk2ZDk1MDYzZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTE5
LDcgKzExOSwxMiBAQCBSZWdpc3RlcklEKiBDb25zdGFudE5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKgogewogICAgIGlmIChkc3QgPT0g
Z2VuZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0TG9hZChkc3QsIGpzVmFsdWUoZ2VuZXJhdG9yKSk7CisgICAgSlNWYWx1
ZSBjb25zdGFudCA9IGpzVmFsdWUoZ2VuZXJhdG9yKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNvbnN0
YW50KSkgeworICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgdHJ5IHRvIHBhcnNlIGEg
c3RyaW5nIG9yIEJpZ0ludCBzbyBlbm9ybW91cyB0aGF0IHdlIE9PTS4KKyAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0VGhyb3dFeHByZXNzaW9uVG9vRGVlcEV4Y2VwdGlvbigpOworICAgIH0K
KyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwgY29uc3RhbnQpOwogfQogCiBKU1Zh
bHVlIFN0cmluZ05vZGU6OmpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCAwYWY5
MzQyNzZlYi4uOWMzNDU0NDJmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAKQEAgLTE4NzUsNiArMTg3NSw5IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFy
c2VJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBDaGFyVHlwZSogZGF0
CiAKICAgICBKU0JpZ0ludCogcmVzdWx0ID0gYWxsb2NhdGVGb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
cmFkaXgsIGxlbmd0aCAtIHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOworICAgIC8vIHJlc3VsdCBjYW4gc3RpbGwgYmUgbnVsbCBpZiB3ZSBkb24ndCBoYXZlIGFj
Y2VzcyB0byBnbG9iYWwgb2JqZWN0LCBhcyBhbGxvY2F0ZUZvciBjYW5ub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uIGluIHRoYXQgY2FzZS4KKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRo
WmVybyk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>