MCPcopy Index your code
hub / github.com/nodejs/node / test

Function test

deps/v8/test/mjsunit/string-externalize.js:38–69  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

36%NeverOptimizeFunction(dont_inline2);
37
38function test() {
39 var str = "";
40
41 // Build an ascii cons string.
42 for (var i = 0; i < size; i++) {
43 str += String.fromCharCode(i & 0x7f);
44 }
45 assertTrue(isOneByteString(str));
46
47 var realTwoByteExternalString =
48 createExternalizableString('\u1234\u1234\u1234\u1234' + dont_inline2());
49 externalizeString(realTwoByteExternalString);
50 assertFalse(isOneByteString(realTwoByteExternalString));
51
52 assertFalse(isOneByteString(["a", realTwoByteExternalString].join("")));
53
54 // Appending a real two-byte string should produce a two-byte cons.
55 var str2 = str + realTwoByteExternalString;
56 assertFalse(isOneByteString(str2));
57
58 // Force flattening of the string.
59 old_length = str2.length - realTwoByteExternalString.length;
60 for (var i = 0; i < old_length; i++) {
61 assertEquals(String.fromCharCode(i & 0x7f), str2[i]);
62 }
63 for (var i = old_length; i < str.length; i++) {
64 assertEquals("\u1234", str2[i]);
65 }
66
67 // Flattened string should still be two-byte.
68 assertFalse(isOneByteString(str2));
69}
70
71// Run the test many times to ensure IC-s don't break things.
72for (var i = 0; i < 10; i++) {

Callers 1

Calls 4

assertTrueFunction · 0.70
assertFalseFunction · 0.50
assertEqualsFunction · 0.50
joinMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…