Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/js/src/jit-test/tests/basic/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  dumpStringRepresentation.js   Sprache: JAVA

 
// |jit-test| skip-if: typeof dumpStringRepresentation !== 'function'

// Try the dumpStringRepresentation shell function on various types of
// strings, and make sure it doesn't crash.

print("Empty string:");
dumpStringRepresentation("");

print("\nResult of coercion to string:");
dumpStringRepresentation();

print("\nString with an index value:");
dumpStringRepresentation((12345).toString());

print("\ns = Simple short atom:");
var s = "xxxxxxxx";
dumpStringRepresentation(s);

// Simple non-atom flat.
print("\ns + s: Non-atom flat:");
var s2 = s + s;
dumpStringRepresentation(s2);

print("\nNon-Latin1 flat:");
var j = "渋谷区";
dumpStringRepresentation(j);

print("\nt = Non-inline atom:");
var t = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"// 31 characters
dumpStringRepresentation(t);

print("\nr1 = t + s: Simple rope:");
var r1 = t + s;
dumpStringRepresentation(r1);

// Flatten that rope, and re-examine the representations of both the result and
// its former leaves. This should be an extensible string.
print("\nr1, former rope after flattening, now extensible:");
r1.match(/x/);
dumpStringRepresentation(r1);

print("\nt, s: Original leaves, representation unchanged:");
dumpStringRepresentation(t);
dumpStringRepresentation(s);

// Create a new rope with the extensible string as its left child.
print("\nr2 = r1 + s: Rope with extensible leftmost child:");
var r2 = r1 + s;
dumpStringRepresentation(r2);

// Flatten that; this should re-use the extensible string's buffer.
print("\nr2: flattened, stole r1's buffer:");
r2.match(/x/);
dumpStringRepresentation(r2);

print("\nr1: mutated into a dependent string:");
dumpStringRepresentation(r1);

print("\nr3 = r2 + s: a new rope with an extensible leftmost child:");
r3 = r2 + s;
r3.match(/x/);
dumpStringRepresentation(r3);

print("\nr2: now mutated into a dependent string");
dumpStringRepresentation(r2);

print("\nr1: now a doubly-dependent string, because of r2's mutation:");
dumpStringRepresentation(r1);

print("\nt, s: Original leaves, representation unchanged:");
dumpStringRepresentation(t);
dumpStringRepresentation(s);

// Extensible string, created directly.
print("\nExtensible:");
var e = newString("一二三四五六七八九*一二三四五六七八", { capacity: 80 });
dumpStringRepresentation(e);

// Reuse an extensible string's storage when flattening a rope whose DAG contains
// the extensible string multiple times.
print("\nFlattened dag with shared leaves:");
var e_flat = newRope(e, newRope(e, "!"));
ensureLinearString(e_flat);
dumpStringRepresentation(e_flat);
assertEq(e_flat.charAt(e.length), e_flat.charAt(0));

for (var str of representativeStringArray())
    dumpStringRepresentation(str);

Messung V0.5
C=87 H=80 G=83

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.