<?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>74510</bug_id>
          
          <creation_ts>2011-12-14 09:14:17 -0800</creation_ts>
          <short_desc>Add ENABLE(HARMONY) and --harmony</short_desc>
          <delta_ts>2011-12-15 07:02:46 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>72960</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andy Wingo">wingo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>peter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>520982</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-12-14 09:14:17 -0800</bug_when>
    <thetext>The ENABLE_HARMONY cpp flag, off by default, will control compilation of Harmony features.  The patch to be attached also adds runtime --harmony and --harmony-block-scoping arguments that are available when ENABLE(HARMONY).

See bug 31813 for a broader discussion.  The runtime flags depend on the work from bug 72960, so there are some other patches to review first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520986</commentid>
    <comment_count>1</comment_count>
      <attachid>119232</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-12-14 09:18:26 -0800</bug_when>
    <thetext>Created attachment 119232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521623</commentid>
    <comment_count>2</comment_count>
      <attachid>119232</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-12-14 20:59:21 -0800</bug_when>
    <thetext>Comment on attachment 119232
Patch

I&apos;m not sure that this makes sense as a global setting.  Some scripts may be harmonious, others not, so we&apos;re going to need harmony to be enabled on a source-by-source basis, not as a global option.  I don&apos;t think a &apos;harmony&apos; flag in the JSC framework is needed.  The command shell may want to look for this flag as an instruction as to how the source it reads in should be interpreted - to create SourceCode/SourceProvider objects with an ES6 flag set (perhaps this should be a new default-to-false argument to makeSource).

I don&apos;t know what you&apos;d do with a harmonyBlockScoping global setting - for ES5 scripts it only makes sense to not use harmony scoping rules, for ES6 scripts it only makes sense to do so.

We generally don&apos;t accept changes that are not complete in their own right, and are effectively dead code - which this is.  Whilst we do like to see changes broken down into smaller patches where sensible, I&apos;d suggest that this is a small enough change that it may be wiser to introduce this alongside the first actual harmony feature implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521877</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-12-15 07:02:46 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 119232 [details])
&gt;The command shell may want to look for this flag as an instruction as to how the source it reads in should be interpreted - to create SourceCode/SourceProvider objects with an ES6 flag set (perhaps this should be a new default-to-false argument to makeSource).

This can make sense, yes.

&gt; I don&apos;t know what you&apos;d do with a harmonyBlockScoping global setting - for ES5 scripts it only makes sense to not use harmony scoping rules, for ES6 scripts it only makes sense to do so.

Block scoping is actually a compatible change, as far as strict-mode ES5 goes, so it can make sense to say &quot;ES5 strict-mode also has the compatible parts of ES6&quot; -- the &quot;compatible extended mode&quot; I mentioned in https://lists.webkit.org/pipermail/webkit-dev/2011-December/018903.html.

&gt; I&apos;d suggest that this is a small enough change that it may be wiser to introduce this alongside the first actual harmony feature implemented.

Fair enough.

Thanks for the review :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119232</attachid>
            <date>2011-12-14 09:18:26 -0800</date>
            <delta_ts>2011-12-14 20:59:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74510-20111214181824.patch</filename>
            <type>text/plain</type>
            <size>2961</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDVjMmZhYzlmNGI0MTMyN2Q2N2FlNWFmMWM0Y2M0YzQ1YjBmNWQ4Li5kYTM2YzI5NmZiZmU5ZTg0
NWY0M2MzMTIxMDRjMDgzZThmNDkyOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNiBAQAogMjAxMS0xMi0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAK
KyAgICAgICAgQWRkIEVOQUJMRShIQVJNT05ZKSBhbmQgLS1oYXJtb255CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDogQWRkIGhhcm1vbnkgYW5kIGhhcm1vbnktYmxv
Y2stc2NvcGluZworICAgICAgICBvcHRpb25zLgorCisyMDExLTEyLTE0ICBBbmR5IFdpbmdvICA8
d2luZ29AaWdhbGlhLmNvbT4KKwogICAgICAgICBJbnRlcnBvc2UgQ29kZU5vZGUgYmV0d2VlbiBT
Y29wZU5vZGUgYW5kIFByb2dyYW1Ob2RlIGV0IGFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuY3BwCmluZGV4IDc5NmI2MzVlZWZjZGM0ODZiYTVmYWVkOGQxZmIwMjNjZGQ2
Y2FhZDAuLjIxODZmY2ZjNDcxYzRlYmY0MmJmNTZiNjdiMTMyNzU5YjgzZTk1MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC03NCw2ICs3NCwxMSBAQCBz
dGF0aWMgdm9pZCBlbnN1cmVDb25zaXN0ZW5jeSgpCiAgICAgQ0xBTVAoZGVzaXJlZFByb2ZpbGVG
dWxsbmVzc1JhdGUsIDAsIGRlc2lyZWRQcm9maWxlTGl2ZW5lc3NSYXRlKTsKICAgICBDTEFNUChu
dW1iZXJPZkdDTWFya2VycywgMSwgOCk7CiAKKyNpZiBFTkFCTEUoSEFSTU9OWSkKKyAgICBpZiAo
aGFybW9ueSkKKyAgICAgICAgaGFybW9ueUJsb2NrU2NvcGluZyA9IHRydWU7CisjZW5kaWYKKwog
ICAgIEFTU0VSVChleGVjdXRpb25Db3VudGVyVmFsdWVGb3JEb250T3B0aW1pemVBbnl0aW1lU29v
biA8PSBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCk7CiAg
ICAgQVNTRVJUKGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVw
IDw9IGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXApOwogICAgIEFT
U0VSVChleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyV2FybVVwIDw9IGV4ZWN1
dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplU29vbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKaW5kZXggNDljZGI3NmY2MzljMDg0MGMyZGExZjQ1Mjg5ODIwMTQwOWFh
ZDk1Yi4uNzMxYWZmNDUzZTZlMjMzNjgwYmUzNGY0ZTA5ZGJkNjNmMDM4NDQ0YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtNDUsNiArNDUsMjMgQEAgRk9SX0VB
Q0hfREVCVUdHSU5HX09QVElPTihERUNMQVJFX0NPTlNUKQogI3VuZGVmIERFQ0xBUkVfQ09OU1QK
ICNlbmRpZgogCisjZGVmaW5lIEZPUl9FQUNIX0hBUk1PTllfT1BUSU9OKG0pIFwKKyAgICBtKGJv
b2wsIGhhcm1vbnksIGZhbHNlLCBcCisgICAgICAiaGFybW9ueSIpIFwKKyAgICBtKGJvb2wsIGhh
cm1vbnlCbG9ja1Njb3BpbmcsIGZhbHNlLCBcCisgICAgICAiaGFybW9ueS1ibG9jay1zY29waW5n
IikKKworI2lmIEVOQUJMRShIQVJNT05ZKQorI2RlZmluZSBGT1JfRUFDSF9FTkFCTEVEX0hBUk1P
TllfT1BUSU9OKG0pIFwKKyAgICBGT1JfRUFDSF9IQVJNT05ZX09QVElPTihtKQorI2Vsc2UKKyNk
ZWZpbmUgRk9SX0VBQ0hfRU5BQkxFRF9IQVJNT05ZX09QVElPTihtKSAvKiBub29wICovCisjZGVm
aW5lIERFQ0xBUkVfQ09OU1QodHlwZSwgbmFtZSwgZGVmYXVsdCwgb3B0bmFtZSkgXAorICAgIHN0
YXRpYyBjb25zdCB0eXBlIG5hbWUgPSBkZWZhdWx0OyAgICAgICAgCitGT1JfRUFDSF9IQVJNT05Z
X09QVElPTihERUNMQVJFX0NPTlNUKQorI3VuZGVmIERFQ0xBUkVfQ09OU1QKKyNlbmRpZgorCiAv
LyBtYXhpbXVtSW5saW5pbmdEZXB0aCBpcyB0aGUgbWF4aW11bSBkZXB0aCBvZiBpbmxpbmUgc3Rh
Y2ssIHNvIDEgPSBubwogLy8gaW5saW5pbmcsIDIgPSBvbmUgbGV2ZWwsIGV0YwogCkBAIC0xMzMs
NyArMTUwLDggQEAgRk9SX0VBQ0hfREVCVUdHSU5HX09QVElPTihERUNMQVJFX0NPTlNUKQogCiAj
ZGVmaW5lIEZPUl9FQUNIX09QVElPTihtKSBcCiAgICAgRk9SX0VBQ0hfSEVVUklTVElDKG0pIFwK
LSAgICBGT1JfRUFDSF9FTkFCTEVEX0RFQlVHR0lOR19PUFRJT04obSkKKyAgICBGT1JfRUFDSF9F
TkFCTEVEX0RFQlVHR0lOR19PUFRJT04obSkgXAorICAgIEZPUl9FQUNIX0VOQUJMRURfSEFSTU9O
WV9PUFRJT04obSkKIAogI2RlZmluZSBERUNMQVJFKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwg
b3B0bmFtZSkgZXh0ZXJuIHR5cGUgY25hbWU7CiBGT1JfRUFDSF9PUFRJT04oREVDTEFSRSkK
</data>
<flag name="review"
          id="119184"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>