<?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>135446</bug_id>
          
          <creation_ts>2014-07-30 18:18:50 -0700</creation_ts>
          <short_desc>REGRESSION: Exception causing crash in UIWebView iOS 8 Beta</short_desc>
          <delta_ts>2014-07-31 10:04:31 -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>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>zack.ulrich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1025852</commentid>
    <comment_count>0</comment_count>
      <attachid>235789</attachid>
    <who name="">zack.ulrich</who>
    <bug_when>2014-07-30 18:18:50 -0700</bug_when>
    <thetext>Created attachment 235789
Stack trace from crash

I was testing out calling some Javascript with my iOS app and noticed that I could crash the app by causing an exception. The JS that I&apos;m calling is attached below as well as the objective c code that I&apos;m using to call it. 

I&apos;m calling a named autoexecuting function which just has a generic try catch inside. The second time the function executes and the exception is caused the app crashes. 

I tested this same function using the new WKWebView and it doesn&apos;t crash the app but it seems to crash my the webview, I can&apos;t execute anything on it the second time the function runs.

I&apos;ve run this code on iOS 7 and it doesn&apos;t cause a crash.

	


function ActivateDemo() {

		this.testFunction = function()
		{
			if (document.body.style.backgroundColor == &quot;red&quot;) 
			{
				document.body.style.backgroundColor=&quot;blue&quot;;
			}
			else
			{
				document.body.style.backgroundColor=&quot;red&quot;;
			}
			 
			(function namedFunc() {
			try{
				eval(&quot;console.log(&apos;hey from function&apos;aa&apos;)&quot;)
			}
			catch(e)
			{
				console.log(&apos;exception &apos; + e)
			}
			})();
		}
	}
	var AD = window.AD = new ActivateDemo();



////objc code //////////////

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    
    NSString *fullURL = @&quot;http://10.20.11.166/testWeb.html&quot;;
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    
    self.wkTest = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
    [self.view addSubview:self.wkTest];
    [self.wkTest loadRequest:requestObj];
    
    self.testButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 350, 50, 50)];
    
    [self.testButton setBackgroundColor:[UIColor blueColor]];
    
    [self.testButton setTitle:@&quot;Test&quot; forState:UIControlStateNormal];
    
    [self.testButton addTarget:self action:@selector(testBut) forControlEvents:UIControlEventTouchUpInside];
    
    self.testWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 400, 100, 300)];
    
    [self.view addSubview:self.testWebView];
    
    [self.testWebView loadRequest:requestObj];
    
    [self.view addSubview:self.testButton];
}

-(void)testBut
{
    [self.wkTest evaluateJavaScript:@&quot;AD.testFunction()&quot; completionHandler:nil];
    
    [self.testWebView stringByEvaluatingJavaScriptFromString:@&quot;AD.testFunction();&quot;];

}

//</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025854</commentid>
    <comment_count>1</comment_count>
      <attachid>235791</attachid>
    <who name="">zack.ulrich</who>
    <bug_when>2014-07-30 18:19:47 -0700</bug_when>
    <thetext>Created attachment 235791
JS function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025855</commentid>
    <comment_count>2</comment_count>
      <attachid>235792</attachid>
    <who name="">zack.ulrich</who>
    <bug_when>2014-07-30 18:20:31 -0700</bug_when>
    <thetext>Created attachment 235792
Objc code</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>235789</attachid>
            <date>2014-07-30 18:18:50 -0700</date>
            <delta_ts>2014-07-30 18:18:50 -0700</delta_ts>
            <desc>Stack trace from crash</desc>
            <filename>stacktrace</filename>
            <type>application/octet-stream</type>
            <size>1836</size>
            <attacher>zack.ulrich</attacher>
            
              <data encoding="base64">MSAgIDB4YTBmM2U4ZCBKU0M6OmdlbmVyaWNVbndpbmQoSlNDOjpWTSosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlKQoyICAgMHhhMjBhZTMxIGxsaW50X3Nsb3dfcGF0aF9oYW5kbGVfZXhj
ZXB0aW9uCjMgICAweGEyMTFmMmUgbGxpbnRfZW50cnkKNCAgIDB4YTIxMzFlNiBsbGludF9lbnRy
eQo1ICAgMHhhMjEzMWU2IGxsaW50X2VudHJ5CjYgICAweGEyMGVkYTYgY2FsbFRvSmF2YVNjcmlw
dAo3ICAgMHhhMGYxZmYxIEpTQzo6SklUQ29kZTo6ZXhlY3V0ZShKU0M6OlZNKiwgSlNDOjpQcm90
b0NhbGxGcmFtZSopCjggICAweGEwZDNhNWUgSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZShKU0M6
OlByb2dyYW1FeGVjdXRhYmxlKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KikKOSAg
IDB4OWYzMmZjYSBKU0M6OmV2YWx1YXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTb3VyY2VDb2Rl
IGNvbnN0JiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUqKQoxMCAgMHg1YjU1ZDY1IFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChXZWJDb3JlOjpTY3JpcHRTb3Vy
Y2VDb2RlIGNvbnN0JiwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikKMTEgIDB4NWI1Nzg1ZCBX
ZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0KFdlYkNvcmU6OlNjcmlwdFNv
dXJjZUNvZGUgY29uc3QmKQoxMiAgMHg1YjU3NmRlIFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmV4ZWN1dGVTY3JpcHQoV1RGOjpTdHJpbmcgY29uc3QmLCBib29sKQoxMyAgMHg0YzNiYWZjIC1b
V2ViRnJhbWUoV2ViSW50ZXJuYWwpIF9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0
cmluZzpmb3JjZVVzZXJHZXN0dXJlOl0KMTQgIDB4NGMzYmEzMCAtW1dlYkZyYW1lKFdlYkludGVy
bmFsKSBfc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6XQoxNSAgMHg0Y2E1
MzVjIC1bV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzpdCjE2
ICAweGYwOWFiYSAtW1VJV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0
cmluZzpdCjE3ICAweDZkMzVlIC1bVmlld0NvbnRyb2xsZXIgdGVzdEJ1dF0KMTggIDB4NTU2N2Nk
IC1bTlNPYmplY3QgcGVyZm9ybVNlbGVjdG9yOndpdGhPYmplY3Q6d2l0aE9iamVjdDpdCjE5ICAw
eGM1MWQ1ZCAtW1VJQXBwbGljYXRpb24gc2VuZEFjdGlvbjp0bzpmcm9tOmZvckV2ZW50Ol0KMjAg
IDB4YzUxY2VmIC1bVUlBcHBsaWNhdGlvbiBzZW5kQWN0aW9uOnRvVGFyZ2V0OmZyb21TZW5kZXI6
Zm9yRXZlbnQ6XQoyMSAgMHhkODNhYTYgLVtVSUNvbnRyb2wgc2VuZEFjdGlvbjp0bzpmb3JFdmVu
dDpdCjIyICAweGQ4M2VjMyAtW1VJQ29udHJvbCBfc2VuZEFjdGlvbnNGb3JFdmVudHM6d2l0aEV2
ZW50Ol0KMjMgIDB4ZDgzMTJkIC1bVUlDb250cm9sIHRvdWNoZXNFbmRlZDp3aXRoRXZlbnQ6XQoy
NCAgMHhjYTFjN2EgLVtVSVdpbmRvdyBfc2VuZFRvdWNoZXNGb3JFdmVudDpdCjI1ICAweGNhMjc1
NSAtW1VJV2luZG93IHNlbmRFdmVudDpdCjI2ICAweGM2ODEzOSAtW1VJQXBwbGljYXRpb24gc2Vu
ZEV2ZW50Ol0KMjcgIDB4Yzc3ZDRlIF9VSUFwcGxpY2F0aW9uSGFuZGxlRXZlbnRGcm9tUXVldWVF
dmVudAoyOCAgMHhjNGM3MDUgX1VJQXBwbGljYXRpb25IYW5kbGVFdmVudFF1ZXVlCjI5ICAweDdj
NTQ2ZiBfX0NGUlVOTE9PUF9JU19DQUxMSU5HX09VVF9UT19BX1NPVVJDRTBfUEVSRk9STV9GVU5D
VElPTl9fCjMwICAweDdiYTkwZCBfX0NGUnVuTG9vcERvU291cmNlczAKMzEgIDB4N2I5ZTY4IF9f
Q0ZSdW5Mb29wUnVu
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>235791</attachid>
            <date>2014-07-30 18:19:47 -0700</date>
            <delta_ts>2014-07-30 18:19:47 -0700</delta_ts>
            <desc>JS function</desc>
            <filename>testFunction.js</filename>
            <type>application/x-javascript</type>
            <size>451</size>
            <attacher>zack.ulrich</attacher>
            
              <data encoding="base64">CWZ1bmN0aW9uIEFjdGl2YXRlRGVtbygpIHsKCgkJdGhpcy50ZXN0RnVuY3Rpb24gPSBmdW5jdGlv
bigpCgkJewoJCQlpZiAoZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPT0gInJl
ZCIpIAoJCQl7CgkJCQlkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvcj0iYmx1ZSI7
CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xv
cj0icmVkIjsKCQkJfQoJCQkgCgkJCShmdW5jdGlvbiBuYW1lZEZ1bmMoKSB7CgkJCXRyeXsKCQkJ
CWV2YWwoImNvbnNvbGUubG9nKCdoZXkgZnJvbSBmdW5jdGlvbidhYScpIikKCQkJfQoJCQljYXRj
aChlKQoJCQl7CgkJCQljb25zb2xlLmxvZygnZXhjZXB0aW9uICcgKyBlKQoJCQl9CgkJCX0pKCk7
CgkJfQoJfQoJdmFyIEFEID0gd2luZG93LkFEID0gbmV3IEFjdGl2YXRlRGVtbygpOwoKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>235792</attachid>
            <date>2014-07-30 18:20:31 -0700</date>
            <delta_ts>2014-07-30 18:20:31 -0700</delta_ts>
            <desc>Objc code</desc>
            <filename>ViewController.m</filename>
            <type>application/octet-stream</type>
            <size>1644</size>
            <attacher>zack.ulrich</attacher>
            
              <data encoding="base64">Ly8KLy8gIFZpZXdDb250cm9sbGVyLm0KLy8gIHdlYnZpZXd0ZXN0Ci8vCi8vICBDcmVhdGVkIGJ5
IFphY2sgVWxyaWNoIG9uIDcvMzAvMTQuCi8vICBDb3B5cmlnaHQgKGMpIDIwMTQgWmFjayBVbHJp
Y2guIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vCgojaW1wb3J0ICJWaWV3Q29udHJvbGxlci5oIgoK
QGludGVyZmFjZSBWaWV3Q29udHJvbGxlciAoKQoKCkBlbmQKCkBpbXBsZW1lbnRhdGlvbiBWaWV3
Q29udHJvbGxlcgogICAgICAgICAgICAKLSAodm9pZCl2aWV3RGlkTG9hZCB7CiAgICBbc3VwZXIg
dmlld0RpZExvYWRdOwogICAgLy8gRG8gYW55IGFkZGl0aW9uYWwgc2V0dXAgYWZ0ZXIgbG9hZGlu
ZyB0aGUgdmlldywgdHlwaWNhbGx5IGZyb20gYSBuaWIuCiAgICAKICAgIAogICAgTlNTdHJpbmcg
KmZ1bGxVUkwgPSBAImh0dHA6Ly8xMC4yMC4xMS4xNjYvdGVzdFdlYi5odG1sIjsKICAgIE5TVVJM
ICp1cmwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpmdWxsVVJMXTsKICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdE9iaiA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXTsKICAgIAogICAg
c2VsZi53a1Rlc3QgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgMzAwKV07CiAgICBbc2VsZi52aWV3IGFkZFN1YnZpZXc6c2VsZi53a1Rlc3Rd
OwogICAgW3NlbGYud2tUZXN0IGxvYWRSZXF1ZXN0OnJlcXVlc3RPYmpdOwogICAgCiAgICBzZWxm
LnRlc3RCdXR0b24gPSBbW1VJQnV0dG9uIGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMzUwLCA1MCwgNTApXTsKICAgIAogICAgW3NlbGYudGVzdEJ1dHRvbiBzZXRCYWNrZ3JvdW5k
Q29sb3I6W1VJQ29sb3IgYmx1ZUNvbG9yXV07CiAgICAKICAgIFtzZWxmLnRlc3RCdXR0b24gc2V0
VGl0bGU6QCJUZXN0IiBmb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1hbF07CiAgICAKICAgIFtz
ZWxmLnRlc3RCdXR0b24gYWRkVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcih0ZXN0QnV0KSBm
b3JDb250cm9sRXZlbnRzOlVJQ29udHJvbEV2ZW50VG91Y2hVcEluc2lkZV07CiAgICAKICAgIHNl
bGYudGVzdFdlYlZpZXcgPSBbW1VJV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDQwMCwgMTAwLCAzMDApXTsKICAgIAogICAgW3NlbGYudmlldyBhZGRTdWJ2aWV3OnNl
bGYudGVzdFdlYlZpZXddOwogICAgCiAgICBbc2VsZi50ZXN0V2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0T2JqXTsKICAgIAogICAgW3NlbGYudmlldyBhZGRTdWJ2aWV3OnNlbGYudGVzdEJ1dHRv
bl07Cn0KCi0odm9pZCl0ZXN0QnV0CnsKICAgIFtzZWxmLndrVGVzdCBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJBRC50ZXN0RnVuY3Rpb24oKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKICAgIAogICAg
W3NlbGYudGVzdFdlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6
QCJBRC50ZXN0RnVuY3Rpb24oKTsiXTsKCn0KCi0gKHZvaWQpZGlkUmVjZWl2ZU1lbW9yeVdhcm5p
bmcgewogICAgW3N1cGVyIGRpZFJlY2VpdmVNZW1vcnlXYXJuaW5nXTsKICAgIC8vIERpc3Bvc2Ug
b2YgYW55IHJlc291cmNlcyB0aGF0IGNhbiBiZSByZWNyZWF0ZWQuCn0KCkBlbmQK
</data>

          </attachment>
      

    </bug>

</bugzilla>