<?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>157048</bug_id>
          
          <creation_ts>2016-04-26 15:31:45 -0700</creation_ts>
          <short_desc>Update the compatibility version check for the ObjC API&apos;s InitConstructorSupport to use dyld_get_program_sdk_version().</short_desc>
          <delta_ts>2016-04-28 22:10:56 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187544</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-26 15:31:45 -0700</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187547</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-26 15:35:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/25093101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187567</commentid>
    <comment_count>2</comment_count>
      <attachid>277419</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-26 16:03:43 -0700</bug_when>
    <thetext>Created attachment 277419
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187587</commentid>
    <comment_count>3</comment_count>
      <attachid>277419</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-04-26 17:05:15 -0700</bug_when>
    <thetext>Comment on attachment 277419
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187593</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-26 17:30:30 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r200114: &lt;http://trac.webkit.org/r200114&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187631</commentid>
    <comment_count>5</comment_count>
      <attachid>277419</attachid>
    <who name="">mitz</who>
    <bug_when>2016-04-26 19:36:40 -0700</bug_when>
    <thetext>Comment on attachment 277419
proposed patch.

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

&gt; Source/JavaScriptCore/API/JSWrapperMap.mm:50
&gt; +#if __has_include(&lt;mach-o/dyld_priv.h&gt;)
&gt; +#include &lt;mach-o/dyld_priv.h&gt;
&gt; +#endif
&gt; +extern &quot;C&quot; uint32_t dyld_get_program_sdk_version();

It’s incorrect to use __has_include to check for private headers. Instead, check for USE(APPLE_INTERNAL_SDK).

&gt; Source/JavaScriptCore/API/JSWrapperMap.mm:55
&gt; +static const uint32_t webkitFirstSDKVersionWithInitConstructorSupport = 0x80000; // iOS 8.0.0
&gt; +#elif PLATFORM(MAC)
&gt; +static const uint32_t webkitFirstSDKVersionWithInitConstructorSupport = 0xA0A00; // OSX 10.10.0

It doesn’t make sense to use “webkit” in these names, which aren’t WebKit versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187884</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-27 11:49:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It’s incorrect to use __has_include to check for private headers. Instead,
&gt; check for USE(APPLE_INTERNAL_SDK).
&gt; 
...
&gt; It doesn’t make sense to use “webkit” in these names, which aren’t WebKit
&gt; versions.

I&apos;ll address these in https://bugs.webkit.org/show_bug.cgi?id=157096.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188508</commentid>
    <comment_count>7</comment_count>
      <attachid>277419</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-04-28 22:10:56 -0700</bug_when>
    <thetext>Comment on attachment 277419
proposed patch.

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

&gt; Source/JavaScriptCore/API/JSWrapperMap.mm:665
&gt; +    static uint32_t programSDKVersion = 0;
&gt; +    if (!programSDKVersion)
&gt; +        programSDKVersion = dyld_get_program_sdk_version();

Do we need to keep trying if we get a zero value once? If not, this should be written as:

static uint32_t programSDKVersion = dyld_get_program_sdk_version();</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277419</attachid>
            <date>2016-04-26 16:03:43 -0700</date>
            <delta_ts>2016-04-26 17:05:15 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-157048.patch</filename>
            <type>text/plain</type>
            <size>2242</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwMTA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTA0LTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgdGhlIGNvbXBhdGliaWxpdHkgdmVyc2lvbiBjaGVjayBmb3IgdGhlIE9iakMgQVBJJ3Mg
SW5pdENvbnN0cnVjdG9yU3VwcG9ydCB0byB1c2UgZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lv
bigpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3
MDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBB
UEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoc3VwcG9ydHNJbml0TWV0aG9kQ29uc3RydWN0
b3JzKToKKyAgICAgICAgKGdldEpTRXhwb3J0UHJvdG9jb2wpOgorCiAyMDE2LTA0LTI2ICBTa2Fj
aGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIGNhbGxpbmcg
c3VwZXIoKSBhIHNlY29uZCB0aW1lIGluIGEgY29uc3RydWN0b3Igc2hvdWxkIHRocm93CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkocmV2aXNpb24gMjAw
MTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDcgKzQ0LDE2IEBACiAKICNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgog
Ci1zdGF0aWMgY29uc3QgaW50MzJfdCB3ZWJraXRGaXJzdFZlcnNpb25XaXRoSW5pdENvbnN0cnVj
dG9yU3VwcG9ydCA9IDB4MjFBMDQwMDsgLy8gNTM4LjQuMAorI2lmIF9faGFzX2luY2x1ZGUoPG1h
Y2gtby9keWxkX3ByaXYuaD4pCisjaW5jbHVkZSA8bWFjaC1vL2R5bGRfcHJpdi5oPgorI2VuZGlm
CitleHRlcm4gIkMiIHVpbnQzMl90IGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKTsKKwor
I2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3ZWJraXRGaXJzdFNES1Zl
cnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydCA9IDB4ODAwMDA7IC8vIGlPUyA4LjAuMAor
I2VsaWYgUExBVEZPUk0oTUFDKQorc3RhdGljIGNvbnN0IHVpbnQzMl90IHdlYmtpdEZpcnN0U0RL
VmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0gMHhBMEEwMDsgLy8gT1NYIDEwLjEw
LjAKKyNlbmRpZgogCiBAY2xhc3MgSlNPYmpDQ2xhc3NJbmZvOwogCkBAIC02NTAsMTIgKzY1OSwx
MiBAQCBib29sIHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycygpCiAjaWYgUExBVEZPUk0o
QVBQTEVUVikKICAgICAvLyBUaGVyZSBhcmUgbm8gb2xkIGNsaWVudHMgb24gQXBwbGUgVFYsIHNv
IHRoZXJlJ3Mgbm8gbmVlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAgICAgcmV0dXJu
IHRydWU7CisjZWxzZQorICAgIHN0YXRpYyB1aW50MzJfdCBwcm9ncmFtU0RLVmVyc2lvbiA9IDA7
CisgICAgaWYgKCFwcm9ncmFtU0RLVmVyc2lvbikKKyAgICAgICAgcHJvZ3JhbVNES1ZlcnNpb24g
PSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7CisgICAgcmV0dXJuIHByb2dyYW1TREtW
ZXJzaW9uID49IHdlYmtpdEZpcnN0U0RLVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0
OwogI2VuZGlmCi0KLSAgICBzdGF0aWMgaW50MzJfdCB2ZXJzaW9uT2ZMaW5rVGltZUxpYnJhcnkg
PSAwOwotICAgIGlmICghdmVyc2lvbk9mTGlua1RpbWVMaWJyYXJ5KQotICAgICAgICB2ZXJzaW9u
T2ZMaW5rVGltZUxpYnJhcnkgPSBOU1ZlcnNpb25PZkxpbmtUaW1lTGlicmFyeSgiSmF2YVNjcmlw
dENvcmUiKTsKLSAgICByZXR1cm4gdmVyc2lvbk9mTGlua1RpbWVMaWJyYXJ5ID49IHdlYmtpdEZp
cnN0VmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0OwogfQogCiBQcm90b2NvbCAqZ2V0
SlNFeHBvcnRQcm90b2NvbCgpCg==
</data>
<flag name="review"
          id="301628"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>