<?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>213449</bug_id>
          
          <creation_ts>2020-06-21 19:07:33 -0700</creation_ts>
          <short_desc>[WTF] Ensure ASCIILiteral is ASCII characters at compile time</short_desc>
          <delta_ts>2020-06-22 08:17:19 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>aperez</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664909</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-21 19:07:33 -0700</bug_when>
    <thetext>[WTF] Ensure ASCIILiteral is ASCII characters at compile time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664910</commentid>
    <comment_count>1</comment_count>
      <attachid>402438</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-21 19:09:16 -0700</bug_when>
    <thetext>Created attachment 402438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664912</commentid>
    <comment_count>2</comment_count>
      <attachid>402438</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-21 19:25:38 -0700</bug_when>
    <thetext>Comment on attachment 402438
Patch

r=me. ラーメン食べたい。</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664915</commentid>
    <comment_count>3</comment_count>
      <attachid>402438</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-21 19:33:36 -0700</bug_when>
    <thetext>Comment on attachment 402438
Patch

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

&gt; Source/WTF/wtf/text/ASCIILiteral.h:64
&gt; +        ASSERT_UNDER_CONSTEXPR_CONTEXT(isASCII(characters[i]));

Since this is constexpr, is there a reason why we only want this for ASSERT_ENABLED?  Why not have RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664920</commentid>
    <comment_count>4</comment_count>
      <attachid>402438</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-21 19:58:17 -0700</bug_when>
    <thetext>Comment on attachment 402438
Patch

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

&gt;&gt; Source/WTF/wtf/text/ASCIILiteral.h:64
&gt;&gt; +        ASSERT_UNDER_CONSTEXPR_CONTEXT(isASCII(characters[i]));
&gt; 
&gt; Since this is constexpr, is there a reason why we only want this for ASSERT_ENABLED?  Why not have RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT this?

Discussed with Mark on Slack, this function can be called in non-constexpr context, like,

auto string = &quot;Hey&quot;_s; // instead of constexpr string = &quot;Hey&quot;_s; in non global code.

So, this is safer for accidental runtime checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664943</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-21 23:51:32 -0700</bug_when>
    <thetext>Committed r263341: &lt;https://trac.webkit.org/changeset/263341&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402438.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664944</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-21 23:52:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64585669&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664948</commentid>
    <comment_count>7</comment_count>
      <attachid>402438</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-06-22 00:23:32 -0700</bug_when>
    <thetext>Comment on attachment 402438
Patch

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

&gt; Source/WTF/ChangeLog:12
&gt; +            auto globalVariable = &quot;ã©ã¼ã¡ã³ (Ramen in Japanese)&quot;_s;

As a ramen enthusiast, I like this example in the commit log ^_^ 🍜️♥️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665025</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-22 07:50:48 -0700</bug_when>
    <thetext>Very very happy to see this change go in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665033</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-22 08:10:43 -0700</bug_when>
    <thetext>Is there some way to make this even more strongly guaranteed to be done at compile time? I assume the answer is no, but obviously we want to compile errors with a poorly formed literal, not a runtime check if it happens to be used in a non-constexpr context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665038</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 08:17:19 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Is there some way to make this even more strongly guaranteed to be done at
&gt; compile time? I assume the answer is no, but obviously we want to compile
&gt; errors with a poorly formed literal, not a runtime check if it happens to be
&gt; used in a non-constexpr context.

This is the purpose of consteval in C++20!
https://en.cppreference.com/w/cpp/language/consteval

I can&apos;t wait to use C++20 :D</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402438</attachid>
            <date>2020-06-21 19:09:16 -0700</date>
            <delta_ts>2020-06-21 23:51:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213449-20200621190915.patch</filename>
            <type>text/plain</type>
            <size>2942</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNkZDkxNGQwMjNjODc1MjlmMzE2NWUw
YTJjZmVjMDZkYTRmODIyZmYuLjcyYzE2Njg1MWY3Y2E4ZGMxMjcyNmNhNWQ1NGZlYzRjOTU3MTc0
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDYtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbV1RGXSBFbnN1cmUgQVNDSUlMaXRlcmFsIGlzIEFT
Q0lJIGNoYXJhY3RlcnMgYXQgY29tcGlsZSB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHVycG9zZSBvZiBBU0NJSUxpdGVyYWwgaXMgZW5z
dXJlIHRoYXQgdGhpcyBpcyBjb21waWxlLXRpbWUgKGRvIG5vdCBuZWVkIHRvIGNvbnNpZGVyIGFi
b3V0IG93bmVyc2hpcCkgQVNDSUkgY2hhcmFjdGVycy4KKyAgICAgICAgQnkgdXNpbmcgYGlzQVND
SUlgIGFuZCBgQVNTRVJUX1VOREVSX0NPTlNURVhQUl9DT05URVhUYCwgd2UgY2FuIG1ha2Ugc3Vy
ZSB0aGF0IHRoaXMgQyBzdHJpbmcgZG9lcyBub3QgaW5jbHVkZSBub24gQVNDSUkgY2hhcmFjdGVy
cy4KKyAgICAgICAgRm9yIGV4YW1wbGUsCisKKyAgICAgICAgICAgIGF1dG8gZ2xvYmFsVmFyaWFi
bGUgPSAi44Op44O844Oh44OzIChSYW1lbiBpbiBKYXBhbmVzZSkiX3M7CisKKyAgICAgICAgYmVj
b21lcyBjb21waWxlIGVycm9yLgorCisgICAgICAgICogd3RmL0FTQ0lJQ1R5cGUuaDoKKyAgICAg
ICAgKFdURjo6aXNBU0NJSSk6CisgICAgICAgICogd3RmL3RleHQvQVNDSUlMaXRlcmFsLmg6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0xpdGVyYWxzOjpvcGVyYXRvciBfcyk6CisKIDIwMjAtMDYtMTkg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDaGVj
ayBHaWdhY2FnZSB1c2FnZSBiZWZvcmUgbGF1bmNoaW5nIFZNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9BU0NJSUNUeXBlLmggYi9Tb3VyY2UvV1RGL3d0Zi9BU0NJSUNUeXBlLmgKaW5kZXgg
ODU4M2Y0NmZhMzI5YTE3NDk5Y2Y0MzgyY2ZkMWY1MzNjNGZhZTE3YS4uOTQ1ZTc4Mjg0NzU2M2Ji
NmIwOGJiNWFkY2Q1MjE1NGQ2NjkzMTM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQVND
SUlDVHlwZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0FTQ0lJQ1R5cGUuaApAQCAtMzksNyArMzks
NyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4gYm9vbCBpc0FTQ0lJKENoYXJhY3RlclR5cGUpOwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gY29uc3RleHByIGJvb2wgaXNBU0NJSShDaGFyYWN0ZXJUeXBlKTsKIHRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgaXNBU0NJSUFscGhhKENoYXJhY3RlclR5cGUp
OwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBpc0FTQ0lJQWxwaGFudW1l
cmljKENoYXJhY3RlclR5cGUpOwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9v
bCBpc0FTQ0lJQmluYXJ5RGlnaXQoQ2hhcmFjdGVyVHlwZSk7CkBAIC03Miw3ICs3Miw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IENoYXJhY3RlclR5cGUgdG9BU0NJSUxvd2Vy
VW5jaGVja2VkKENoYXJhY3RlclR5CiAKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3Qg
dW5zaWduZWQgY2hhciBhc2NpaUNhc2VGb2xkVGFibGVbMjU2XTsKIAotdGVtcGxhdGU8dHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSShDaGFyYWN0ZXJUeXBlIGNoYXJh
Y3RlcikKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGNvbnN0ZXhwciBib29sIGlz
QVNDSUkoQ2hhcmFjdGVyVHlwZSBjaGFyYWN0ZXIpCiB7CiAgICAgcmV0dXJuICEoY2hhcmFjdGVy
ICYgfjB4N0YpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVy
YWwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKaW5kZXggNzEyMjg4NWY4
MmRiZDcwMTY3Y2FlNjk1NDY0NDA2ZTQ0NjVlZGI3Ni4uYTkwOGRmM2JlYTYxZmZjMjNlYmRkYjM0
NGM3NTZmYzJjOGU4ODI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxp
dGVyYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCkBAIC0yNSw2
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4K
KwogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIFByaW50U3RyZWFtOwpAQCAtNTUsOCArNTcsMTQg
QEAgY2xhc3MgQVNDSUlMaXRlcmFsIGZpbmFsIHsKIAogaW5saW5lIG5hbWVzcGFjZSBTdHJpbmdM
aXRlcmFscyB7CiAKLWNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgb3BlcmF0b3IiIiBfcyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QpCitjb25zdGV4cHIgQVNDSUlMaXRlcmFsIG9wZXJhdG9y
IiIgX3MoY29uc3QgY2hhciogY2hhcmFjdGVycywgc2l6ZV90IG4pCiB7CisjaWYgQVNTRVJUX0VO
QUJMRUQKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkKKyAgICAgICAgQVNTRVJU
X1VOREVSX0NPTlNURVhQUl9DT05URVhUKGlzQVNDSUkoY2hhcmFjdGVyc1tpXSkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obik7CisjZW5kaWYKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpm
cm9tTGl0ZXJhbFVuc2FmZShjaGFyYWN0ZXJzKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>