mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-11 19:27:35 -06:00
Merge pull request #18417 from Microsoft/fail-spec-lambda-parsing-on-parameter-initialiser-missing-=
Fail speculative parsing of arrow functions when their parameter initialisers are missing a =
This commit is contained in:
commit
b934c8bcbd
@ -2240,7 +2240,7 @@ namespace ts {
|
||||
isStartOfType(/*inStartOfParameter*/ true);
|
||||
}
|
||||
|
||||
function parseParameter(): ParameterDeclaration {
|
||||
function parseParameter(requireEqualsToken?: boolean): ParameterDeclaration {
|
||||
const node = <ParameterDeclaration>createNode(SyntaxKind.Parameter);
|
||||
if (token() === SyntaxKind.ThisKeyword) {
|
||||
node.name = createIdentifier(/*isIdentifier*/ true);
|
||||
@ -2269,19 +2269,11 @@ namespace ts {
|
||||
|
||||
node.questionToken = parseOptionalToken(SyntaxKind.QuestionToken);
|
||||
node.type = parseParameterType();
|
||||
node.initializer = parseBindingElementInitializer(/*inParameter*/ true);
|
||||
node.initializer = parseInitializer(/*inParameter*/ true, requireEqualsToken);
|
||||
|
||||
return addJSDocComment(finishNode(node));
|
||||
}
|
||||
|
||||
function parseBindingElementInitializer(inParameter: boolean) {
|
||||
return inParameter ? parseParameterInitializer() : parseNonParameterInitializer();
|
||||
}
|
||||
|
||||
function parseParameterInitializer() {
|
||||
return parseInitializer(/*inParameter*/ true);
|
||||
}
|
||||
|
||||
function fillSignature(
|
||||
returnToken: SyntaxKind.ColonToken | SyntaxKind.EqualsGreaterThanToken,
|
||||
flags: SignatureFlags,
|
||||
@ -2334,7 +2326,8 @@ namespace ts {
|
||||
setYieldContext(!!(flags & SignatureFlags.Yield));
|
||||
setAwaitContext(!!(flags & SignatureFlags.Await));
|
||||
|
||||
const result = parseDelimitedList(ParsingContext.Parameters, flags & SignatureFlags.JSDoc ? parseJSDocParameter : parseParameter);
|
||||
const result = parseDelimitedList(ParsingContext.Parameters,
|
||||
flags & SignatureFlags.JSDoc ? parseJSDocParameter : () => parseParameter(!!(flags & SignatureFlags.RequireCompleteParameterList)));
|
||||
|
||||
setYieldContext(savedYieldContext);
|
||||
setAwaitContext(savedAwaitContext);
|
||||
@ -3011,7 +3004,7 @@ namespace ts {
|
||||
return expr;
|
||||
}
|
||||
|
||||
function parseInitializer(inParameter: boolean): Expression {
|
||||
function parseInitializer(inParameter: boolean, requireEqualsToken?: boolean): Expression {
|
||||
if (token() !== SyntaxKind.EqualsToken) {
|
||||
// It's not uncommon during typing for the user to miss writing the '=' token. Check if
|
||||
// there is no newline after the last token and if we're on an expression. If so, parse
|
||||
@ -3026,11 +3019,17 @@ namespace ts {
|
||||
// do not try to parse initializer
|
||||
return undefined;
|
||||
}
|
||||
if (inParameter && requireEqualsToken) {
|
||||
// = is required when speculatively parsing arrow function parameters,
|
||||
// so return a fake initializer as a signal that the equals token was missing
|
||||
const result = createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition*/ true, Diagnostics._0_expected, "=") as Identifier;
|
||||
result.escapedText = "= not found" as __String;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
// Initializer[In, Yield] :
|
||||
// = AssignmentExpression[?In, ?Yield]
|
||||
|
||||
parseExpected(SyntaxKind.EqualsToken);
|
||||
return parseAssignmentExpressionOrHigher();
|
||||
}
|
||||
@ -3345,8 +3344,7 @@ namespace ts {
|
||||
function tryParseAsyncSimpleArrowFunctionExpression(): ArrowFunction | undefined {
|
||||
// We do a check here so that we won't be doing unnecessarily call to "lookAhead"
|
||||
if (token() === SyntaxKind.AsyncKeyword) {
|
||||
const isUnParenthesizedAsyncArrowFunction = lookAhead(isUnParenthesizedAsyncArrowFunctionWorker);
|
||||
if (isUnParenthesizedAsyncArrowFunction === Tristate.True) {
|
||||
if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === Tristate.True) {
|
||||
const asyncModifier = parseModifiersForArrowFunction();
|
||||
const expr = parseBinaryExpressionOrHigher(/*precedence*/ 0);
|
||||
return parseSimpleArrowFunctionExpression(<Identifier>expr, asyncModifier);
|
||||
@ -3380,7 +3378,6 @@ namespace ts {
|
||||
const node = <ArrowFunction>createNode(SyntaxKind.ArrowFunction);
|
||||
node.modifiers = parseModifiersForArrowFunction();
|
||||
const isAsync = hasModifier(node, ModifierFlags.Async) ? SignatureFlags.Await : SignatureFlags.None;
|
||||
|
||||
// Arrow functions are never generators.
|
||||
//
|
||||
// If we're speculatively parsing a signature for a parenthesized arrow function, then
|
||||
@ -3403,7 +3400,8 @@ namespace ts {
|
||||
// - "a ? (b): c" will have "(b):" parsed as a signature with a return type annotation.
|
||||
//
|
||||
// So we need just a bit of lookahead to ensure that it can only be a signature.
|
||||
if (!allowAmbiguity && token() !== SyntaxKind.EqualsGreaterThanToken && token() !== SyntaxKind.OpenBraceToken) {
|
||||
if (!allowAmbiguity && ((token() !== SyntaxKind.EqualsGreaterThanToken && token() !== SyntaxKind.OpenBraceToken) ||
|
||||
find(node.parameters, p => p.initializer && ts.isIdentifier(p.initializer) && p.initializer.escapedText === "= not found"))) {
|
||||
// Returning undefined here will cause our caller to rewind to where we started from.
|
||||
return undefined;
|
||||
}
|
||||
@ -5152,7 +5150,7 @@ namespace ts {
|
||||
const node = <BindingElement>createNode(SyntaxKind.BindingElement);
|
||||
node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken);
|
||||
node.name = parseIdentifierOrPattern();
|
||||
node.initializer = parseBindingElementInitializer(/*inParameter*/ false);
|
||||
node.initializer = parseInitializer(/*inParameter*/ false);
|
||||
return finishNode(node);
|
||||
}
|
||||
|
||||
@ -5169,7 +5167,7 @@ namespace ts {
|
||||
node.propertyName = propertyName;
|
||||
node.name = parseIdentifierOrPattern();
|
||||
}
|
||||
node.initializer = parseBindingElementInitializer(/*inParameter*/ false);
|
||||
node.initializer = parseInitializer(/*inParameter*/ false);
|
||||
return finishNode(node);
|
||||
}
|
||||
|
||||
@ -5208,7 +5206,7 @@ namespace ts {
|
||||
node.name = parseIdentifierOrPattern();
|
||||
node.type = parseTypeAnnotation();
|
||||
if (!isInOrOfKeyword(token())) {
|
||||
node.initializer = parseInitializer(/*inParameter*/ false);
|
||||
node.initializer = parseNonParameterInitializer();
|
||||
}
|
||||
return finishNode(node);
|
||||
}
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression5.ts ===
|
||||
function foo(q: string, b: number) {
|
||||
>foo : Symbol(foo, Decl(parserArrowFunctionExpression5.ts, 0, 0))
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression5.ts, 0, 13))
|
||||
>b : Symbol(b, Decl(parserArrowFunctionExpression5.ts, 0, 23))
|
||||
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression5.ts, 0, 13))
|
||||
>b : Symbol(b, Decl(parserArrowFunctionExpression5.ts, 0, 23))
|
||||
>q.length : Symbol(String.length, Decl(lib.d.ts, --, --))
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression5.ts, 0, 13))
|
||||
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
|
||||
|
||||
};
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression5.ts ===
|
||||
function foo(q: string, b: number) {
|
||||
>foo : (q: string, b: number) => boolean | (() => void)
|
||||
>q : string
|
||||
>b : number
|
||||
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
>true ? (q ? true : false) : (b = q.length, function() { }) : boolean | (() => void)
|
||||
>true : true
|
||||
>(q ? true : false) : boolean
|
||||
>q ? true : false : boolean
|
||||
>q : string
|
||||
>true : true
|
||||
>false : false
|
||||
>(b = q.length, function() { }) : () => void
|
||||
>b = q.length, function() { } : () => void
|
||||
>b = q.length : number
|
||||
>b : number
|
||||
>q.length : number
|
||||
>q : string
|
||||
>length : number
|
||||
>function() { } : () => void
|
||||
|
||||
};
|
||||
|
||||
11
tests/baselines/reference/parserArrowFunctionExpression6.js
Normal file
11
tests/baselines/reference/parserArrowFunctionExpression6.js
Normal file
@ -0,0 +1,11 @@
|
||||
//// [parserArrowFunctionExpression6.ts]
|
||||
function foo(q: string, b: number) {
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
};
|
||||
|
||||
|
||||
//// [parserArrowFunctionExpression6.js]
|
||||
function foo(q, b) {
|
||||
return true ? (q ? true : false) : (b = q.length, function () { });
|
||||
}
|
||||
;
|
||||
@ -0,0 +1,15 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.ts ===
|
||||
function foo(q: string, b: number) {
|
||||
>foo : Symbol(foo, Decl(parserArrowFunctionExpression6.ts, 0, 0))
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression6.ts, 0, 13))
|
||||
>b : Symbol(b, Decl(parserArrowFunctionExpression6.ts, 0, 23))
|
||||
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression6.ts, 0, 13))
|
||||
>b : Symbol(b, Decl(parserArrowFunctionExpression6.ts, 0, 23))
|
||||
>q.length : Symbol(String.length, Decl(lib.d.ts, --, --))
|
||||
>q : Symbol(q, Decl(parserArrowFunctionExpression6.ts, 0, 13))
|
||||
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
|
||||
|
||||
};
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression6.ts ===
|
||||
function foo(q: string, b: number) {
|
||||
>foo : (q: string, b: number) => boolean | (() => void)
|
||||
>q : string
|
||||
>b : number
|
||||
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
>true ? (q ? true : false) : (b = q.length, function() { }) : boolean | (() => void)
|
||||
>true : true
|
||||
>(q ? true : false) : boolean
|
||||
>q ? true : false : boolean
|
||||
>q : string
|
||||
>true : true
|
||||
>false : false
|
||||
>(b = q.length, function() { }) : () => void
|
||||
>b = q.length, function() { } : () => void
|
||||
>b = q.length : number
|
||||
>b : number
|
||||
>q.length : number
|
||||
>q : string
|
||||
>length : number
|
||||
>function() { } : () => void
|
||||
|
||||
};
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
//// [parserRegularExpressionDivideAmbiguity6.ts]
|
||||
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
|
||||
let r = [];
|
||||
let v;
|
||||
r[0] = (v = a0*a0) & 0xFFFF;
|
||||
r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF;
|
||||
r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF;
|
||||
r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF;
|
||||
r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF;
|
||||
r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF;
|
||||
r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF;
|
||||
r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF;
|
||||
r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF;
|
||||
r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF;
|
||||
r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF;
|
||||
r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF;
|
||||
r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF;
|
||||
r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF;
|
||||
r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF;
|
||||
r[15] = ((v / 0x10000) | 0);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
//// [parserRegularExpressionDivideAmbiguity6.js]
|
||||
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
|
||||
var r = [];
|
||||
var v;
|
||||
r[0] = (v = a0 * a0) & 0xFFFF;
|
||||
r[1] = (v = ((v / 0x10000) | 0) + 2 * a0 * a1) & 0xFFFF;
|
||||
r[2] = (v = ((v / 0x10000) | 0) + 2 * a0 * a2 + a1 * a1) & 0xFFFF;
|
||||
r[3] = (v = ((v / 0x10000) | 0) + 2 * a0 * a3 + 2 * a1 * a2) & 0xFFFF;
|
||||
r[4] = (v = ((v / 0x10000) | 0) + 2 * a0 * a4 + 2 * a1 * a3 + a2 * a2) & 0xFFFF;
|
||||
r[5] = (v = ((v / 0x10000) | 0) + 2 * a0 * a5 + 2 * a1 * a4 + 2 * a2 * a3) & 0xFFFF;
|
||||
r[6] = (v = ((v / 0x10000) | 0) + 2 * a0 * a6 + 2 * a1 * a5 + 2 * a2 * a4 + a3 * a3) & 0xFFFF;
|
||||
r[7] = (v = ((v / 0x10000) | 0) + 2 * a0 * a7 + 2 * a1 * a6 + 2 * a2 * a5 + 2 * a3 * a4) & 0xFFFF;
|
||||
r[8] = (v = ((v / 0x10000) | 0) + 2 * a1 * a7 + 2 * a2 * a6 + 2 * a3 * a5 + a4 * a4) & 0xFFFF;
|
||||
r[9] = (v = ((v / 0x10000) | 0) + 2 * a2 * a7 + 2 * a3 * a6 + 2 * a4 * a5) & 0xFFFF;
|
||||
r[10] = (v = ((v / 0x10000) | 0) + 2 * a3 * a7 + 2 * a4 * a6 + a5 * a5) & 0xFFFF;
|
||||
r[11] = (v = ((v / 0x10000) | 0) + 2 * a4 * a7 + 2 * a5 * a6) & 0xFFFF;
|
||||
r[12] = (v = ((v / 0x10000) | 0) + 2 * a5 * a7 + a6 * a6) & 0xFFFF;
|
||||
r[13] = (v = ((v / 0x10000) | 0) + 2 * a6 * a7) & 0xFFFF;
|
||||
r[14] = (v = ((v / 0x10000) | 0) + a7 * a7) & 0xFFFF;
|
||||
r[15] = ((v / 0x10000) | 0);
|
||||
return r;
|
||||
}
|
||||
@ -0,0 +1,172 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity6.ts ===
|
||||
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
|
||||
>c255lsqr8h : Symbol(c255lsqr8h, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 0))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
|
||||
let r = [];
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
|
||||
let v;
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
|
||||
r[0] = (v = a0*a0) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
|
||||
r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
|
||||
r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
|
||||
r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
|
||||
r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
|
||||
r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
|
||||
r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
|
||||
r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a0 : Symbol(a0, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 47))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
|
||||
r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a1 : Symbol(a1, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 43))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
|
||||
r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a2 : Symbol(a2, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 39))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
|
||||
r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a3 : Symbol(a3, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 35))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
|
||||
r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a4 : Symbol(a4, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 31))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
|
||||
r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a5 : Symbol(a5, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 27))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
|
||||
r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a6 : Symbol(a6, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 23))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
|
||||
r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
>a7 : Symbol(a7, Decl(parserRegularExpressionDivideAmbiguity6.ts, 0, 20))
|
||||
|
||||
r[15] = ((v / 0x10000) | 0);
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
>v : Symbol(v, Decl(parserRegularExpressionDivideAmbiguity6.ts, 2, 7))
|
||||
|
||||
return r;
|
||||
>r : Symbol(r, Decl(parserRegularExpressionDivideAmbiguity6.ts, 1, 7))
|
||||
}
|
||||
|
||||
@ -0,0 +1,498 @@
|
||||
=== tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity6.ts ===
|
||||
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
|
||||
>c255lsqr8h : (a7: any, a6: any, a5: any, a4: any, a3: any, a2: any, a1: any, a0: any) => any[]
|
||||
>a7 : any
|
||||
>a6 : any
|
||||
>a5 : any
|
||||
>a4 : any
|
||||
>a3 : any
|
||||
>a2 : any
|
||||
>a1 : any
|
||||
>a0 : any
|
||||
|
||||
let r = [];
|
||||
>r : any[]
|
||||
>[] : undefined[]
|
||||
|
||||
let v;
|
||||
>v : any
|
||||
|
||||
r[0] = (v = a0*a0) & 0xFFFF;
|
||||
>r[0] = (v = a0*a0) & 0xFFFF : number
|
||||
>r[0] : any
|
||||
>r : any[]
|
||||
>0 : 0
|
||||
>(v = a0*a0) & 0xFFFF : number
|
||||
>(v = a0*a0) : number
|
||||
>v = a0*a0 : number
|
||||
>v : any
|
||||
>a0*a0 : number
|
||||
>a0 : any
|
||||
>a0 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF;
|
||||
>r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF : number
|
||||
>r[1] : any
|
||||
>r : any[]
|
||||
>1 : 1
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a1) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a1 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a1 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a1 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a1 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF;
|
||||
>r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF : number
|
||||
>r[2] : any
|
||||
>r : any[]
|
||||
>2 : 2
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a2 + a1*a1 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a2 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a2 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a2 : any
|
||||
>a1*a1 : number
|
||||
>a1 : any
|
||||
>a1 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF;
|
||||
>r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF : number
|
||||
>r[3] : any
|
||||
>r : any[]
|
||||
>3 : 3
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a3 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a3 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a3 : any
|
||||
>2*a1*a2 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a2 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF;
|
||||
>r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF : number
|
||||
>r[4] : any
|
||||
>r : any[]
|
||||
>4 : 4
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a4 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a4 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a4 : any
|
||||
>2*a1*a3 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a3 : any
|
||||
>a2*a2 : number
|
||||
>a2 : any
|
||||
>a2 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF;
|
||||
>r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF : number
|
||||
>r[5] : any
|
||||
>r : any[]
|
||||
>5 : 5
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a5 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a5 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a5 : any
|
||||
>2*a1*a4 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a4 : any
|
||||
>2*a2*a3 : number
|
||||
>2*a2 : number
|
||||
>2 : 2
|
||||
>a2 : any
|
||||
>a3 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF;
|
||||
>r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF : number
|
||||
>r[6] : any
|
||||
>r : any[]
|
||||
>6 : 6
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a6 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a6 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a6 : any
|
||||
>2*a1*a5 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a5 : any
|
||||
>2*a2*a4 : number
|
||||
>2*a2 : number
|
||||
>2 : 2
|
||||
>a2 : any
|
||||
>a4 : any
|
||||
>a3*a3 : number
|
||||
>a3 : any
|
||||
>a3 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF;
|
||||
>r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF : number
|
||||
>r[7] : any
|
||||
>r : any[]
|
||||
>7 : 7
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a0*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a0*a7 : number
|
||||
>2*a0 : number
|
||||
>2 : 2
|
||||
>a0 : any
|
||||
>a7 : any
|
||||
>2*a1*a6 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a6 : any
|
||||
>2*a2*a5 : number
|
||||
>2*a2 : number
|
||||
>2 : 2
|
||||
>a2 : any
|
||||
>a5 : any
|
||||
>2*a3*a4 : number
|
||||
>2*a3 : number
|
||||
>2 : 2
|
||||
>a3 : any
|
||||
>a4 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF;
|
||||
>r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF : number
|
||||
>r[8] : any
|
||||
>r : any[]
|
||||
>8 : 8
|
||||
>(v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4 : number
|
||||
>((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 : number
|
||||
>((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a1*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a1*a7 : number
|
||||
>2*a1 : number
|
||||
>2 : 2
|
||||
>a1 : any
|
||||
>a7 : any
|
||||
>2*a2*a6 : number
|
||||
>2*a2 : number
|
||||
>2 : 2
|
||||
>a2 : any
|
||||
>a6 : any
|
||||
>2*a3*a5 : number
|
||||
>2*a3 : number
|
||||
>2 : 2
|
||||
>a3 : any
|
||||
>a5 : any
|
||||
>a4*a4 : number
|
||||
>a4 : any
|
||||
>a4 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF;
|
||||
>r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF : number
|
||||
>r[9] : any
|
||||
>r : any[]
|
||||
>9 : 9
|
||||
>(v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5 : number
|
||||
>((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a2*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a2*a7 : number
|
||||
>2*a2 : number
|
||||
>2 : 2
|
||||
>a2 : any
|
||||
>a7 : any
|
||||
>2*a3*a6 : number
|
||||
>2*a3 : number
|
||||
>2 : 2
|
||||
>a3 : any
|
||||
>a6 : any
|
||||
>2*a4*a5 : number
|
||||
>2*a4 : number
|
||||
>2 : 2
|
||||
>a4 : any
|
||||
>a5 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF;
|
||||
>r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF : number
|
||||
>r[10] : any
|
||||
>r : any[]
|
||||
>10 : 10
|
||||
>(v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5 : number
|
||||
>((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a3*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a3*a7 : number
|
||||
>2*a3 : number
|
||||
>2 : 2
|
||||
>a3 : any
|
||||
>a7 : any
|
||||
>2*a4*a6 : number
|
||||
>2*a4 : number
|
||||
>2 : 2
|
||||
>a4 : any
|
||||
>a6 : any
|
||||
>a5*a5 : number
|
||||
>a5 : any
|
||||
>a5 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF;
|
||||
>r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF : number
|
||||
>r[11] : any
|
||||
>r : any[]
|
||||
>11 : 11
|
||||
>(v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a4*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a4*a7 : number
|
||||
>2*a4 : number
|
||||
>2 : 2
|
||||
>a4 : any
|
||||
>a7 : any
|
||||
>2*a5*a6 : number
|
||||
>2*a5 : number
|
||||
>2 : 2
|
||||
>a5 : any
|
||||
>a6 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF;
|
||||
>r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF : number
|
||||
>r[12] : any
|
||||
>r : any[]
|
||||
>12 : 12
|
||||
>(v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a5*a7 + a6*a6 : number
|
||||
>((v / 0x10000) | 0) + 2*a5*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a5*a7 : number
|
||||
>2*a5 : number
|
||||
>2 : 2
|
||||
>a5 : any
|
||||
>a7 : any
|
||||
>a6*a6 : number
|
||||
>a6 : any
|
||||
>a6 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF;
|
||||
>r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF : number
|
||||
>r[13] : any
|
||||
>r : any[]
|
||||
>13 : 13
|
||||
>(v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + 2*a6*a7) : number
|
||||
>v = ((v / 0x10000) | 0) + 2*a6*a7 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + 2*a6*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>2*a6*a7 : number
|
||||
>2*a6 : number
|
||||
>2 : 2
|
||||
>a6 : any
|
||||
>a7 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF;
|
||||
>r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF : number
|
||||
>r[14] : any
|
||||
>r : any[]
|
||||
>14 : 14
|
||||
>(v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF : number
|
||||
>(v = ((v / 0x10000) | 0) + a7*a7) : number
|
||||
>v = ((v / 0x10000) | 0) + a7*a7 : number
|
||||
>v : any
|
||||
>((v / 0x10000) | 0) + a7*a7 : number
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
>a7*a7 : number
|
||||
>a7 : any
|
||||
>a7 : any
|
||||
>0xFFFF : 65535
|
||||
|
||||
r[15] = ((v / 0x10000) | 0);
|
||||
>r[15] = ((v / 0x10000) | 0) : number
|
||||
>r[15] : any
|
||||
>r : any[]
|
||||
>15 : 15
|
||||
>((v / 0x10000) | 0) : number
|
||||
>(v / 0x10000) | 0 : number
|
||||
>(v / 0x10000) : number
|
||||
>v / 0x10000 : number
|
||||
>v : any
|
||||
>0x10000 : 65536
|
||||
>0 : 0
|
||||
|
||||
return r;
|
||||
>r : any[]
|
||||
}
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity7.ts(1,2): error TS2304: Cannot find name 'a'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity7.ts(2,3): error TS1005: ';' expected.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpressionDivideAmbiguity7.ts (2 errors) ====
|
||||
(a/8
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'a'.
|
||||
){}
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
//// [parserRegularExpressionDivideAmbiguity7.ts]
|
||||
(a/8
|
||||
){}
|
||||
|
||||
|
||||
//// [parserRegularExpressionDivideAmbiguity7.js]
|
||||
(a / 8);
|
||||
{ }
|
||||
@ -0,0 +1,3 @@
|
||||
function foo(q: string, b: number) {
|
||||
return true ? (q ? true : false) : (b = q.length, function() { });
|
||||
};
|
||||
@ -0,0 +1,21 @@
|
||||
function c255lsqr8h(a7, a6, a5, a4, a3, a2, a1, a0) {
|
||||
let r = [];
|
||||
let v;
|
||||
r[0] = (v = a0*a0) & 0xFFFF;
|
||||
r[1] = (v = ((v / 0x10000) | 0) + 2*a0*a1) & 0xFFFF;
|
||||
r[2] = (v = ((v / 0x10000) | 0) + 2*a0*a2 + a1*a1) & 0xFFFF;
|
||||
r[3] = (v = ((v / 0x10000) | 0) + 2*a0*a3 + 2*a1*a2) & 0xFFFF;
|
||||
r[4] = (v = ((v / 0x10000) | 0) + 2*a0*a4 + 2*a1*a3 + a2*a2) & 0xFFFF;
|
||||
r[5] = (v = ((v / 0x10000) | 0) + 2*a0*a5 + 2*a1*a4 + 2*a2*a3) & 0xFFFF;
|
||||
r[6] = (v = ((v / 0x10000) | 0) + 2*a0*a6 + 2*a1*a5 + 2*a2*a4 + a3*a3) & 0xFFFF;
|
||||
r[7] = (v = ((v / 0x10000) | 0) + 2*a0*a7 + 2*a1*a6 + 2*a2*a5 + 2*a3*a4) & 0xFFFF;
|
||||
r[8] = (v = ((v / 0x10000) | 0) + 2*a1*a7 + 2*a2*a6 + 2*a3*a5 + a4*a4) & 0xFFFF;
|
||||
r[9] = (v = ((v / 0x10000) | 0) + 2*a2*a7 + 2*a3*a6 + 2*a4*a5) & 0xFFFF;
|
||||
r[10] = (v = ((v / 0x10000) | 0) + 2*a3*a7 + 2*a4*a6 + a5*a5) & 0xFFFF;
|
||||
r[11] = (v = ((v / 0x10000) | 0) + 2*a4*a7 + 2*a5*a6) & 0xFFFF;
|
||||
r[12] = (v = ((v / 0x10000) | 0) + 2*a5*a7 + a6*a6) & 0xFFFF;
|
||||
r[13] = (v = ((v / 0x10000) | 0) + 2*a6*a7) & 0xFFFF;
|
||||
r[14] = (v = ((v / 0x10000) | 0) + a7*a7) & 0xFFFF;
|
||||
r[15] = ((v / 0x10000) | 0);
|
||||
return r;
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
(a/8
|
||||
){}
|
||||
Loading…
x
Reference in New Issue
Block a user