如何testingUIWebView的JavaScript的10MB限制?

我试图testingUIWebView的10MB限制在Javascript内存分配。 这是我在模拟器上运行的代码(iOS 5.1)。

int size = 10485760+1024000*10; int i = 13; char *cStr = (char *) malloc(size); // 20MB buffer char *lcStr = cStr; lcStr+=i; strcpy(cStr, "window._x = \'"); for ( ; i < size-4; i++){ if(i%2){ *lcStr = ' '; }else{ *lcStr = 'c'; } lcStr++; } strcpy(lcStr, "c\';\0"); NSString *longStr = [NSString stringWithCString:cStr encoding:NSASCIIStringEncoding]; // by now 40MB used //memory usage spikes to 60MB NSString *result = [self.webView stringByEvaluatingJavaScriptFromString: longStr]; free(cStr); 

HTML / JS:

 <script type="text/javascript"> setTimeout(function(){document.getElementById("one").innerText = window._x;},3000); </script> 

我的问题是,上面的代码不会导致任何exception被UIWebView抛出,即使明显的JS分配在一个点上大于10MB。 我用仪器来validation内存使用情况。

整个程序的最终结果是,我看到一堆'c'在webview中被打印在屏幕上,但没有崩溃。

难道我做错了什么? 我怎样才能testing这个JS限制?

这些限制因设备而异。 模拟器不会像实际设备那样施加相同的限制。 如果你在iPhone上testing这个,你应该会看到一个exception。