summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/GC/regress-313479.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/GC/regress-313479.js')
-rw-r--r--js/src/tests/non262/GC/regress-313479.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/non262/GC/regress-313479.js b/js/src/tests/non262/GC/regress-313479.js
new file mode 100644
index 0000000000..a13dba3ff6
--- /dev/null
+++ b/js/src/tests/non262/GC/regress-313479.js
@@ -0,0 +1,37 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+//-----------------------------------------------------------------------------
+var BUGNUMBER = 313479;
+var summary = 'Root access in jsnum.c';
+var actual = '';
+var expect = '';
+
+printBugNumber(BUGNUMBER);
+printStatus (summary);
+
+var prepared_string = String(1);
+String(2); // To remove prepared_string from newborn
+
+var likeString = {
+ toString: function() {
+ var tmp = prepared_string;
+ prepared_string = null;
+ return tmp;
+ }
+};
+
+var likeNumber = {
+ valueOf: function() {
+ gc();
+ return 10;
+ }
+}
+
+ var expect = 1;
+var actual = parseInt(likeString, likeNumber);
+printStatus("expect="+expect+" actual="+actual);
+
+reportCompare(expect, actual, summary);