Index: testing/resources/bug_634716.pdf |
diff --git a/testing/resources/bug_620428.pdf b/testing/resources/bug_634716.pdf |
similarity index 64% |
copy from testing/resources/bug_620428.pdf |
copy to testing/resources/bug_634716.pdf |
index e53ed50e24bf811c8b476c964b0249ae9473a0e5..6330b9a4e534c5b629a93b84308be4287a6e580f 100644 |
--- a/testing/resources/bug_620428.pdf |
+++ b/testing/resources/bug_634716.pdf |
@@ -66,28 +66,55 @@ endobj |
50 0 obj << |
>> |
stream |
-function fireTimeOut() { |
- app.alert("hello world"); |
+var timeOut = 0; |
+var array = new Array(1024*4); |
+var doc = this; |
+ |
+function myFunction() { |
+ try { |
+ // Free the Timer Objects |
+ app.clearTimeOut(timeOut); |
+ for (var i=0; i<array.length; i++) { |
+ for (var j=0; j<array[i].length; j++) { |
+ app.clearTimeOut(array[i][j]); |
+ } |
+ } |
+ |
+ // Trigger the Garbage Collection |
+ array.length = 0; |
+ array.push(new ArrayBuffer(1024*1024)); |
+ array.length=0; |
+ array.length=1024*4; |
+ var str = 'AA'; |
+ for (var i = 0; i < array.length ; i++) { |
+ for (var j = 0; j < 10; j++ ) { |
+ doc.addIcon(str + "-" + str + str + str + str + str, doc.icons); |
+ } |
+ } |
+ } catch(err) { |
+ app.alert(err); |
+ } |
} |
-function fireInterval() { |
- app.alert("goodbye world"); |
+ |
+function main() { |
+ try { |
+ for (var i = 0; i < array.length ; i++) { |
+ if (i == array.length / 2) { |
+ timeOut = app.setTimeOut("myFunction()", 1000); |
+ } |
+ array[i] = new Array(4); |
+ for (var j = 0; j < array[i].length ; j++ ) { |
+ array[i][j] = app.setTimeOut("aaaaaaaaaa()", 100000); |
+ } |
+ } |
+ } catch(err) { |
+ app.alert(err); |
+ } |
} |
-var timer = app.setTimeOut("fireTimeOut()", 3000); |
-var interval = app.setInterval("fireInterval()", 1000); |
-// Clear timers before they fire. |
-app.clearTimeOut(timer); |
-app.clearInterval(interval); |
-// Check that clearing a cleared timer is ok. |
-app.clearTimeOut(timer); |
-app.clearInterval(interval); |
-// Check that invoking the wrong clear method is ok |
-var timer = app.setTimeOut("fireTimeOut()", 3000); |
-var interval = app.setInterval("fireInterval()", 1000); |
-app.clearTimeOut(interval); |
-app.clearInterval(timer); |
-// Check that clearing a non-timer is ok. |
-app.clearTimeOut({"size": 42}); |
-app.clearInterval({"size": 42}); |
+ |
+// Execute the JS. |
+app.setTimeOut("main()", 1000); |
+ |
// Be sure all of this code ran to completion. |
app.alert("done"); |
endstream |
@@ -149,5 +176,5 @@ trailer << |
/Root 1 0 R |
>> |
startxref |
-1655 |
+2036 |
%%EOF |