description("Test of Unicode escape sequences in string literals and identifiers, especially code point escape sequences.");

function codeUnits(string)
{
    var result = [];
    for (var i = 0; i < string.length; ++i) {
        var hex = "000" + string.charCodeAt(i).toString(16).toUpperCase();
        result.push(hex.substring(hex.length - 4));
    }
    return result.join(",");
}

function testStringUnicodeEscapeSequence(sequence, expectedResult)
{
    shouldBeEqualToString('codeUnits("\\u' + sequence + '")', expectedResult);
}

function testInvalidStringUnicodeEscapeSequence(sequence)
{
    shouldThrow('codeUnits("\\u' + sequence + '")');
}

function testIdentifierStartUnicodeEscapeSequence(sequence, expectedResult)
{
    shouldBeEqualToString('codeUnits(function \\u' + sequence + '(){}.name)', expectedResult);
}

function testInvalidIdentifierStartUnicodeEscapeSequence(sequence)
{
    shouldThrow('codeUnits(function \\u' + sequence + '(){}.name)');
}

function testIdentifierPartUnicodeEscapeSequence(sequence, expectedResult)
{
    shouldBeEqualToString('codeUnits(function x\\u' + sequence + '(){}.name.substring(1))', expectedResult);
}

function testInvalidIdentifierPartUnicodeEscapeSequence(sequence)
{
    shouldThrow('codeUnits(function x\\u' + sequence + '(){}.name.substring(1))');
}

testStringUnicodeEscapeSequence("{0}", "0000");
testStringUnicodeEscapeSequence("{41}", "0041");
testStringUnicodeEscapeSequence("{D800}", "D800");
testStringUnicodeEscapeSequence("{d800}", "D800");
testStringUnicodeEscapeSequence("{DC00}", "DC00");
testStringUnicodeEscapeSequence("{dc00}", "DC00");
testStringUnicodeEscapeSequence("{FFFF}", "FFFF");
testStringUnicodeEscapeSequence("{ffff}", "FFFF");
testStringUnicodeEscapeSequence("{10000}", "D800,DC00");
testStringUnicodeEscapeSequence("{10001}", "D800,DC01");
testStringUnicodeEscapeSequence("{102C0}", "D800,DEC0");
testStringUnicodeEscapeSequence("{102c0}", "D800,DEC0");
testStringUnicodeEscapeSequence("{1D306}", "D834,DF06");
testStringUnicodeEscapeSequence("{1d306}", "D834,DF06");
testStringUnicodeEscapeSequence("{10FFFE}", "DBFF,DFFE");
testStringUnicodeEscapeSequence("{10fffe}", "DBFF,DFFE");
testStringUnicodeEscapeSequence("{10FFFF}", "DBFF,DFFF");
testStringUnicodeEscapeSequence("{10ffff}", "DBFF,DFFF");
testStringUnicodeEscapeSequence("{00000000000000000000000010FFFF}", "DBFF,DFFF");
testStringUnicodeEscapeSequence("{00000000000000000000000010ffff}", "DBFF,DFFF");

testInvalidStringUnicodeEscapeSequence("");
testInvalidStringUnicodeEscapeSequence("x");
testInvalidStringUnicodeEscapeSequence("{");
testInvalidStringUnicodeEscapeSequence("{}");
testInvalidStringUnicodeEscapeSequence("{G}");
testInvalidStringUnicodeEscapeSequence("{1G}");
testInvalidStringUnicodeEscapeSequence("{110000}");
testInvalidStringUnicodeEscapeSequence("{1000000}");
testInvalidStringUnicodeEscapeSequence("{100000000000000000000000}");

testIdentifierStartUnicodeEscapeSequence("{41}", "0041");
testIdentifierStartUnicodeEscapeSequence("{102C0}", "D800,DEC0");
testIdentifierStartUnicodeEscapeSequence("{102c0}", "D800,DEC0");
testIdentifierStartUnicodeEscapeSequence("{10000}", "D800,DC00");
testIdentifierStartUnicodeEscapeSequence("{10001}", "D800,DC01");

testInvalidIdentifierStartUnicodeEscapeSequence("");
testInvalidIdentifierStartUnicodeEscapeSequence("{0}");
testInvalidIdentifierStartUnicodeEscapeSequence("{D800}");
testInvalidIdentifierStartUnicodeEscapeSequence("{d800}");
testInvalidIdentifierStartUnicodeEscapeSequence("{DC00}");
testInvalidIdentifierStartUnicodeEscapeSequence("{dc00}");
testInvalidIdentifierStartUnicodeEscapeSequence("{FFFF}");
testInvalidIdentifierStartUnicodeEscapeSequence("{ffff}");
testInvalidIdentifierStartUnicodeEscapeSequence("{10FFFE}");
testInvalidIdentifierStartUnicodeEscapeSequence("{10fffe}");
testInvalidIdentifierStartUnicodeEscapeSequence("{10FFFF}");
testInvalidIdentifierStartUnicodeEscapeSequence("{10ffff}");
testInvalidIdentifierStartUnicodeEscapeSequence("{00000000000000000000000010FFFF}");
testInvalidIdentifierStartUnicodeEscapeSequence("{00000000000000000000000010ffff}");
testInvalidIdentifierStartUnicodeEscapeSequence("{1D306}");
testInvalidIdentifierStartUnicodeEscapeSequence("{1d306}");

testInvalidIdentifierStartUnicodeEscapeSequence("x");
testInvalidIdentifierStartUnicodeEscapeSequence("{");
testInvalidIdentifierStartUnicodeEscapeSequence("{}");
testInvalidIdentifierStartUnicodeEscapeSequence("{G}");
testInvalidIdentifierStartUnicodeEscapeSequence("{1G}");
testInvalidIdentifierStartUnicodeEscapeSequence("{110000}");
testInvalidIdentifierStartUnicodeEscapeSequence("{1000000}");
testInvalidIdentifierStartUnicodeEscapeSequence("{100000000000000000000000}");

testIdentifierPartUnicodeEscapeSequence("{41}", "0041");
testIdentifierPartUnicodeEscapeSequence("{10000}", "D800,DC00");
testIdentifierPartUnicodeEscapeSequence("{10001}", "D800,DC01");
testIdentifierPartUnicodeEscapeSequence("{102C0}", "D800,DEC0");
testIdentifierPartUnicodeEscapeSequence("{102c0}", "D800,DEC0");

testInvalidIdentifierPartUnicodeEscapeSequence("");
testInvalidIdentifierPartUnicodeEscapeSequence("{0}");
testInvalidIdentifierPartUnicodeEscapeSequence("{D800}");
testInvalidIdentifierPartUnicodeEscapeSequence("{d800}");
testInvalidIdentifierPartUnicodeEscapeSequence("{DC00}");
testInvalidIdentifierPartUnicodeEscapeSequence("{dc00}");
testInvalidIdentifierPartUnicodeEscapeSequence("{FFFF}");
testInvalidIdentifierPartUnicodeEscapeSequence("{ffff}");
testInvalidIdentifierPartUnicodeEscapeSequence("{1D306}");
testInvalidIdentifierPartUnicodeEscapeSequence("{1d306}");
testInvalidIdentifierPartUnicodeEscapeSequence("{10FFFE}");
testInvalidIdentifierPartUnicodeEscapeSequence("{10fffe}");
testInvalidIdentifierPartUnicodeEscapeSequence("{10FFFF}");
testInvalidIdentifierPartUnicodeEscapeSequence("{10ffff}");
testInvalidIdentifierPartUnicodeEscapeSequence("{00000000000000000000000010FFFF}");
testInvalidIdentifierPartUnicodeEscapeSequence("{00000000000000000000000010ffff}");

testInvalidIdentifierPartUnicodeEscapeSequence("x");
testInvalidIdentifierPartUnicodeEscapeSequence("{");
testInvalidIdentifierPartUnicodeEscapeSequence("{}");
testInvalidIdentifierPartUnicodeEscapeSequence("{G}");
testInvalidIdentifierPartUnicodeEscapeSequence("{1G}");
testInvalidIdentifierPartUnicodeEscapeSequence("{110000}");
testInvalidIdentifierPartUnicodeEscapeSequence("{1000000}");
testInvalidIdentifierPartUnicodeEscapeSequence("{100000000000000000000000}");

var successfullyParsed = true;
