summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/String/replace-rope-empty.js
blob: 86c5b5236a5814a6595cdc81d3ad7b9a621bfcae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// |reftest| skip-if(!xulRuntime.shell)

var BUGNUMBER = 1509768;
var summary = "String#replace with an empty string pattern on a rope should prepend the replacement string.";

print(BUGNUMBER + ": " + summary);

// Rope is created when the string length >= 25.
//
// This testcase depends on that condition to reliably test the code for
// String#replace on a rope.
//
// Please rewrite this testcase when the following assertion fails.
assertEq(isRope("a".repeat(24)), false);
assertEq(isRope("a".repeat(25)), true);

// Not a rope.
assertEq("a".repeat(24).replace("", "foo"),
         "foo" + "a".repeat(24));
assertEq("a".repeat(24).replace("", ""),
         "a".repeat(24));

// A rope.
assertEq("a".repeat(25).replace("", "foo"),
         "foo" + "a".repeat(25));
assertEq("a".repeat(25).replace("", ""),
         "a".repeat(25));

if (typeof reportCompare === "function")
    reportCompare(true, true);