Emit comments in the javascript code if --removecomments is not specified

This commit is contained in:
Sheetal Nandi
2014-08-14 05:41:04 -07:00
parent f622cb4d11
commit 3e95358486
993 changed files with 17585 additions and 12763 deletions
+50 -3
View File
@@ -10,6 +10,7 @@ module ts {
getLine(): number;
getColumn(): number;
getIndent(): number;
isLineStart(): boolean;
}
var indentStrings: string[] = [];
@@ -146,7 +147,8 @@ module ts {
getTextPos: () => output.length,
getLine: () => lineCount + 1,
getColumn: () => lineStart ? indent * 4 + 1 : output.length - linePos + 1,
getText: () => output
getText: () => output,
isLineStart: () => lineStart
};
}
@@ -177,14 +179,24 @@ module ts {
/** write emitted output to disk*/
var writeEmittedFiles = writeJavaScriptFile;
/** Emit leading comments of the declaration */
var emitLeadingComments = compilerOptions.removeComments ? function (declaration: Declaration) {
} : emitLeadingDeclarationComments;
/** Emit Trailing comments of the declaration */
var emitTrailingComments = compilerOptions.removeComments ? function (declaration: Declaration) {
} : emitTrailingDeclarationComments;
var writeComment = writeCommentRange;
/** Emit a node */
var emit = emitNode;
/** Called just before starting emit of a node */
var emitStart = function (node: Node) { }
var emitStart = function (node: Node) { };
/** Called once the emit of the node is done */
var emitEnd = function (node: Node) { }
var emitEnd = function (node: Node) { };
/** Emit the text for the given token that comes after startPos
* This by default writes the text provided with the given tokenKind
@@ -428,6 +440,12 @@ module ts {
sourceMapNameIndices.pop();
};
function writeCommentRangeWithMap(comment: Comment) {
recordSourceMapSpan(comment.pos);
writeCommentRange(comment);
recordSourceMapSpan(comment.end);
}
function writeJavaScriptAndSourceMapFile(emitOutput: string, writeByteOrderMark: boolean) {
// Write source map file
encodeLastRecordedSourceMapSpan();
@@ -513,6 +531,7 @@ module ts {
emitNewSourceFileStart = recordNewSourceFileStart;
scopeEmitStart = recordScopeNameOfNode;
scopeEmitEnd = recordScopeNameEnd;
writeComment = writeCommentRangeWithMap;
}
function writeJavaScriptFile(emitOutput: string, writeByteOrderMark: boolean) {
@@ -1057,14 +1076,18 @@ module ts {
}
function emitVariableDeclaration(node: VariableDeclaration) {
emitLeadingComments(node);
emitModuleMemberName(node);
emitOptional(" = ", node.initializer);
emitTrailingComments(node);
}
function emitVariableStatement(node: VariableStatement) {
emitLeadingComments(node);
if (!(node.flags & NodeFlags.Export)) write("var ");
emitCommaList(node.declarations);
write(";");
emitTrailingComments(node);
}
function emitParameter(node: ParameterDeclaration) {
@@ -1840,6 +1863,30 @@ module ts {
}
}
function writeCommentRange(comment: Comment) {
writer.writeLiteral(currentSourceFile.text.substring(comment.pos, comment.end));
}
function emitComments(comments: Comment[]) {
forEach(comments, comment => {
writeComment(comment);
if (comment.hasTrailingNewLine) {
writer.writeLine();
} else {
writer.write(" ");
}
});
}
function emitLeadingDeclarationComments(node: Declaration) {
var leadingComments = getLeadingComments(currentSourceFile.text, node.pos);
emitComments(leadingComments);
}
function emitTrailingDeclarationComments(node: Declaration) {
var trailingComments = getTrailingComments(currentSourceFile.text, node.end);
}
if (compilerOptions.sourceMap) {
initializeEmitterWithSourceMaps();
}
+9 -3
View File
@@ -359,9 +359,9 @@ module ts {
// between the given position and the next line break are returned. The return value is an array containing a TextRange for each
// comment. Single-line comment ranges include the the beginning '//' characters but not the ending line break. Multi-line comment
// ranges include the beginning '/* and ending '*/' characters. The return value is undefined if no comments were found.
function getCommentRanges(text: string, pos: number, trailing: boolean): TextRange[] {
var result: TextRange[];
var collecting = trailing;
function getCommentRanges(text: string, pos: number, trailing: boolean): Comment[] {
var result: Comment[];
var collecting = trailing || pos === 0;
while (true) {
var ch = text.charCodeAt(pos);
switch (ch) {
@@ -373,6 +373,9 @@ module ts {
return result;
}
collecting = true;
if (result && result.length) {
result[result.length - 1].hasTrailingNewLine = true;
}
continue;
case CharacterCodes.tab:
case CharacterCodes.verticalTab:
@@ -411,6 +414,9 @@ module ts {
break;
default:
if (ch > CharacterCodes.maxAsciiCharacter && (isWhiteSpace(ch) || isLineBreak(ch))) {
if (result && result.length && isLineBreak(ch)) {
result[result.length - 1].hasTrailingNewLine = true;
}
pos++;
continue;
}
+4
View File
@@ -512,6 +512,10 @@ module ts {
filename: string;
}
export interface Comment extends TextRange {
hasTrailingNewLine?: boolean;
}
export interface SourceFile extends Block {
filename: string;
text: string;
@@ -67,6 +67,7 @@ var X;
var Y = X.Y;
})(X || (X = {}));
//// [test.js]
//var cl: { x: number; y: number; }
var cl = new X.Y.Point(1, 1);
var cl = X.Y.Point.Origin;
//// [simple.js]
@@ -79,6 +80,7 @@ var A;
(function (A) {
A.Instance = new A();
})(A || (A = {}));
// ensure merging works as expected
var a = A.Instance;
var a = new A();
var a;
@@ -14,5 +14,6 @@ module A {
//// [ExportVariableWithAccessibleTypeInTypeAnnotation.js]
var A;
(function (A) {
// valid since Point is exported
A.Origin = { x: 0, y: 0 };
})(A || (A = {}));
@@ -21,6 +21,8 @@ module A {
//// [ExportVariableWithInaccessibleTypeInTypeAnnotation.js]
var A;
(function (A) {
// valid since Point is exported
A.Origin = { x: 0, y: 0 };
// invalid Point3d is not exported
A.Origin3d = { x: 0, y: 0, z: 0 };
})(A || (A = {}));
@@ -59,8 +59,10 @@ var A;
return AG2;
})();
})(A || (A = {}));
// no errors expected, these are all exported
var a;
var a = new A.A();
var AG = new A.AG();
// errors expected, these are not exported
var a2 = new A.A2();
var ag2 = new A.A2();
@@ -25,5 +25,7 @@ var A;
Day[Day["Tuesday"] = 1] = "Tuesday";
})(Day || (Day = {}));
})(A || (A = {}));
// not an error since exported
var a = 0 /* Red */;
// error not exported
var b = A.Day.Monday;
@@ -47,9 +47,11 @@ var A;
return null;
}
})(A || (A = {}));
// these should not be errors since the functions are exported
var fn;
var fn = A.fn;
var fng;
var fng = A.fng;
// these should be errors since the functions are not exported
var fn2 = A.fn2;
var fng2 = A.fng2;
@@ -55,11 +55,14 @@ var Geometry;
(function (Geometry) {
var Lines = B;
Geometry.Origin = { x: 0, y: 0 };
// this is valid since B.Line _is_ visible outside Geometry
Geometry.Unit = new Lines.Line(Geometry.Origin, { x: 1, y: 0 });
})(Geometry || (Geometry = {}));
// expected to work since all are exported
var p;
var p;
var p = Geometry.Origin;
var line;
var line = Geometry.Unit;
// not expected to work since non are exported
var line = Geometry.Lines.Line;
@@ -20,4 +20,5 @@ var A;
})(A || (A = {}));
var x;
var x = A.x;
// Error, since y is not exported
var y = A.y;
@@ -61,6 +61,7 @@ var A;
return Point;
})();
})(A || (A = {}));
// ensure merges as expected
var p;
var p;
var X;
@@ -92,5 +93,6 @@ var X;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(X || (X = {}));
// ensure merges as expected
var l;
var l;
@@ -38,7 +38,9 @@ var l: X.Y.Z.Line;
//// [TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.js]
// ensure merges as expected
var p;
var p;
// ensure merges as expected
var l;
var l;
@@ -56,6 +56,7 @@ var A;
//// [part2.js]
var A;
(function (A) {
// not a collision, since we don't export
var Origin = "0,0";
(function (Utils) {
var Plane = (function () {
@@ -70,6 +71,7 @@ var A;
var Utils = A.Utils;
})(A || (A = {}));
//// [part3.js]
// test the merging actually worked
var o;
var o;
var o = A.Origin;
@@ -38,7 +38,9 @@ var l: X.Y.Z.Line;
//// [TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.js]
// ensure merges as expected
var p;
var p;
// ensure merges as expected
var l;
var l;
@@ -49,6 +49,7 @@ var A;
B.x;
})(B || (B = {}));
})(A || (A = {}));
// ensure the right var decl is exported
var x;
var x = A.B.x;
var X;
@@ -81,5 +82,6 @@ var X;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(X || (X = {}));
// make sure merging works as expected
var l;
var l;
@@ -48,6 +48,7 @@ var Root;
var otherRoot;
(function (otherRoot) {
(function (A) {
// have to be fully qualified since in different root
A.Origin = { x: 0, y: 0 };
(function (Utils) {
var Plane = (function () {
@@ -67,6 +67,7 @@ var A;
var Utils = A.Utils;
})(A || (A = {}));
//// [part3.js]
// test the merging actually worked
var o;
var o;
var o = A.Origin;
@@ -64,15 +64,18 @@ var b;
var c;
var d;
var e;
// any as left operand, result is type Any except plusing string
var r1 = a + a;
var r2 = a + b;
var r3 = a + c;
var r4 = a + d;
var r5 = a + e;
// any as right operand, result is type Any except plusing string
var r6 = b + a;
var r7 = c + a;
var r8 = d + a;
var r9 = e + a;
// other cases
var r10 = a + foo;
var r11 = a + foo();
var r12 = a + C;
@@ -64,15 +64,19 @@ var a;
var b;
var c;
var d;
// boolean + every type except any and string
var r1 = a + a;
var r2 = a + b;
var r3 = a + c;
// number + every type except any and string
var r4 = b + a;
var r5 = b + b;
var r6 = b + c;
// object + every type except any and string
var r7 = c + a;
var r8 = c + b;
var r9 = c + c;
// other cases
var r10 = a + true;
var r11 = true + false;
var r12 = true + 123;
@@ -31,12 +31,14 @@ var a;
var b;
var c;
var d;
// null + boolean/Object
var r1 = null + a;
var r2 = null + b;
var r3 = null + c;
var r4 = a + null;
var r5 = b + null;
var r6 = null + c;
// other cases
var r7 = null + d;
var r8 = null + true;
var r9 = null + { a: '' };
@@ -41,8 +41,10 @@ var a;
var b;
var c;
var d;
// null + any
var r1 = null + a;
var r2 = a + null;
// null + number/enum
var r3 = null + b;
var r4 = null + 1;
var r5 = null + c;
@@ -53,6 +55,7 @@ var r9 = 1 + null;
var r10 = c + null;
var r11 = 0 /* a */ + null;
var r12 = E['a'] + null;
// null + string
var r13 = null + d;
var r14 = null + '';
var r15 = d + null;
@@ -6,6 +6,7 @@ var r3 = undefined + null;
var r4 = undefined + undefined;
//// [additionOperatorWithOnlyNullValueOrUndefinedValue.js]
// bug 819721
var r1 = null + null;
var r2 = null + undefined;
var r3 = undefined + null;
@@ -53,6 +53,8 @@ var e;
var f;
var g;
var x;
// string could plus every type, and the result is always string
// string as left operand
var r1 = x + a;
var r2 = x + b;
var r3 = x + c;
@@ -60,6 +62,7 @@ var r4 = x + d;
var r5 = x + e;
var r6 = x + f;
var r7 = x + g;
// string as right operand
var r8 = a + x;
var r9 = b + x;
var r10 = c + x;
@@ -67,6 +70,7 @@ var r11 = d + x;
var r12 = e + x;
var r13 = f + x;
var r14 = g + x;
// other cases
var r15 = x + E;
var r16 = x + 0 /* a */;
var r17 = x + '';
@@ -52,6 +52,7 @@ function foo(t, u) {
var e;
var g;
var f;
// type parameter as left operand
var r1 = t + a;
var r2 = t + b;
var r3 = t + c;
@@ -59,6 +60,7 @@ function foo(t, u) {
var r5 = t + e;
var r6 = t + g;
var r7 = t + f;
// type parameter as right operand
var r8 = a + t;
var r9 = b + t;
var r10 = c + t;
@@ -66,6 +68,7 @@ function foo(t, u) {
var r12 = e + t;
var r13 = g + t;
var r14 = f + t;
// other cases
var r15 = t + null;
var r16 = t + undefined;
var r17 = t + t;
@@ -31,12 +31,14 @@ var a;
var b;
var c;
var d;
// undefined + boolean/Object
var r1 = undefined + a;
var r2 = undefined + b;
var r3 = undefined + c;
var r4 = a + undefined;
var r5 = b + undefined;
var r6 = undefined + c;
// other cases
var r7 = undefined + d;
var r8 = undefined + true;
var r9 = undefined + { a: '' };
@@ -41,8 +41,10 @@ var a;
var b;
var c;
var d;
// undefined + any
var r1 = undefined + a;
var r2 = a + undefined;
// undefined + number/enum
var r3 = undefined + b;
var r4 = undefined + 1;
var r5 = undefined + c;
@@ -53,6 +55,7 @@ var r9 = 1 + undefined;
var r10 = c + undefined;
var r11 = 0 /* a */ + undefined;
var r12 = E['a'] + undefined;
// undefined + string
var r13 = undefined + d;
var r14 = undefined + '';
var r15 = d + undefined;
@@ -78,5 +78,6 @@ declare module 'external1' {
//// [ambientDeclarations.js]
var x = E3.B;
// Ambient module members are always exported with or without export keyword
var p = M1.x;
var q = M1.fn();
@@ -11,8 +11,11 @@ var c = new x(x);
var d = new x<any>(x); // no error
//// [anyAsConstructor.js]
// any is considered an untyped function call
// can be called except with type arguments which is an error
var x;
var a = new x();
var b = new x('hello');
var c = new x(x);
// grammar allows this for constructors
var d = new x(x);
@@ -8,6 +8,8 @@ var b = x('hello');
var c = x(x);
//// [anyAsFunctionCall.js]
// any is considered an untyped function call
// can be called except with type arguments which is an error
var x;
var a = x();
var b = x('hello');
@@ -11,6 +11,8 @@ var c = x<C>(x);
var d = x<any>(x);
//// [anyAsGenericFunctionCall.js]
// any is considered an untyped function call
// can be called except with type arguments which is an error
var x;
var a = x();
var b = x('hello');
@@ -105,6 +105,7 @@ var rj8 = b | b;
//// [arithmeticOperatorWithAnyAndNumber.js]
var a;
var b;
// operator *
var ra1 = a * a;
var ra2 = a * b;
var ra3 = a * 0;
@@ -113,6 +114,7 @@ var ra5 = 0 * 0;
var ra6 = b * 0;
var ra7 = 0 * b;
var ra8 = b * b;
// operator /
var rb1 = a / a;
var rb2 = a / b;
var rb3 = a / 0;
@@ -121,6 +123,7 @@ var rb5 = 0 / 0;
var rb6 = b / 0;
var rb7 = 0 / b;
var rb8 = b / b;
// operator %
var rc1 = a % a;
var rc2 = a % b;
var rc3 = a % 0;
@@ -129,6 +132,7 @@ var rc5 = 0 % 0;
var rc6 = b % 0;
var rc7 = 0 % b;
var rc8 = b % b;
// operator -
var rd1 = a - a;
var rd2 = a - b;
var rd3 = a - 0;
@@ -137,6 +141,7 @@ var rd5 = 0 - 0;
var rd6 = b - 0;
var rd7 = 0 - b;
var rd8 = b - b;
// operator <<
var re1 = a << a;
var re2 = a << b;
var re3 = a << 0;
@@ -145,6 +150,7 @@ var re5 = 0 << 0;
var re6 = b << 0;
var re7 = 0 << b;
var re8 = b << b;
// operator >>
var rf1 = a >> a;
var rf2 = a >> b;
var rf3 = a >> 0;
@@ -153,6 +159,7 @@ var rf5 = 0 >> 0;
var rf6 = b >> 0;
var rf7 = 0 >> b;
var rf8 = b >> b;
// operator >>>
var rg1 = a >>> a;
var rg2 = a >>> b;
var rg3 = a >>> 0;
@@ -161,6 +168,7 @@ var rg5 = 0 >>> 0;
var rg6 = b >>> 0;
var rg7 = 0 >>> b;
var rg8 = b >>> b;
// operator &
var rh1 = a & a;
var rh2 = a & b;
var rh3 = a & 0;
@@ -169,6 +177,7 @@ var rh5 = 0 & 0;
var rh6 = b & 0;
var rh7 = 0 & b;
var rh8 = b & b;
// operator ^
var ri1 = a ^ a;
var ri2 = a ^ b;
var ri3 = a ^ 0;
@@ -177,6 +186,7 @@ var ri5 = 0 ^ 0;
var ri6 = b ^ 0;
var ri7 = 0 ^ b;
var ri8 = b ^ b;
// operator |
var rj1 = a | a;
var rj2 = a | b;
var rj3 = a | 0;
@@ -159,6 +159,7 @@ var E;
var a;
var b;
var c;
// operator *
var ra1 = c * a;
var ra2 = c * b;
var ra3 = c * c;
@@ -171,6 +172,7 @@ var ra9 = 0 /* a */ * 1;
var ra10 = a * 1 /* b */;
var ra11 = b * 1 /* b */;
var ra12 = 1 * 1 /* b */;
// operator /
var rb1 = c / a;
var rb2 = c / b;
var rb3 = c / c;
@@ -183,6 +185,7 @@ var rb9 = 0 /* a */ / 1;
var rb10 = a / 1 /* b */;
var rb11 = b / 1 /* b */;
var rb12 = 1 / 1 /* b */;
// operator %
var rc1 = c % a;
var rc2 = c % b;
var rc3 = c % c;
@@ -195,6 +198,7 @@ var rc9 = 0 /* a */ % 1;
var rc10 = a % 1 /* b */;
var rc11 = b % 1 /* b */;
var rc12 = 1 % 1 /* b */;
// operator -
var rd1 = c - a;
var rd2 = c - b;
var rd3 = c - c;
@@ -207,6 +211,7 @@ var rd9 = 0 /* a */ - 1;
var rd10 = a - 1 /* b */;
var rd11 = b - 1 /* b */;
var rd12 = 1 - 1 /* b */;
// operator <<
var re1 = c << a;
var re2 = c << b;
var re3 = c << c;
@@ -219,6 +224,7 @@ var re9 = 0 /* a */ << 1;
var re10 = a << 1 /* b */;
var re11 = b << 1 /* b */;
var re12 = 1 << 1 /* b */;
// operator >>
var rf1 = c >> a;
var rf2 = c >> b;
var rf3 = c >> c;
@@ -231,6 +237,7 @@ var rf9 = 0 /* a */ >> 1;
var rf10 = a >> 1 /* b */;
var rf11 = b >> 1 /* b */;
var rf12 = 1 >> 1 /* b */;
// operator >>>
var rg1 = c >>> a;
var rg2 = c >>> b;
var rg3 = c >>> c;
@@ -243,6 +250,7 @@ var rg9 = 0 /* a */ >>> 1;
var rg10 = a >>> 1 /* b */;
var rg11 = b >>> 1 /* b */;
var rg12 = 1 >>> 1 /* b */;
// operator &
var rh1 = c & a;
var rh2 = c & b;
var rh3 = c & c;
@@ -255,6 +263,7 @@ var rh9 = 0 /* a */ & 1;
var rh10 = a & 1 /* b */;
var rh11 = b & 1 /* b */;
var rh12 = 1 & 1 /* b */;
// operator ^
var ri1 = c ^ a;
var ri2 = c ^ b;
var ri3 = c ^ c;
@@ -267,6 +276,7 @@ var ri9 = 0 /* a */ ^ 1;
var ri10 = a ^ 1 /* b */;
var ri11 = b ^ 1 /* b */;
var ri12 = 1 ^ 1 /* b */;
// operator |
var rj1 = c | a;
var rj2 = c | b;
var rj3 = c | c;
@@ -594,6 +594,8 @@ var c;
var d;
var e;
var f;
// All of the below should be an error unless otherwise noted
// operator *
var r1a1 = a * a;
var r1a2 = a * b;
var r1a3 = a * c;
@@ -642,6 +644,7 @@ var r1h3 = c * 1 /* b */;
var r1h4 = d * 1 /* b */;
var r1h5 = e * 1 /* b */;
var r1h6 = f * 1 /* b */;
// operator /
var r2a1 = a / a;
var r2a2 = a / b;
var r2a3 = a / c;
@@ -690,6 +693,7 @@ var r2h3 = c / 1 /* b */;
var r2h4 = d / 1 /* b */;
var r2h5 = e / 1 /* b */;
var r2h6 = f / 1 /* b */;
// operator %
var r3a1 = a % a;
var r3a2 = a % b;
var r3a3 = a % c;
@@ -738,6 +742,7 @@ var r3h3 = c % 1 /* b */;
var r3h4 = d % 1 /* b */;
var r3h5 = e % 1 /* b */;
var r3h6 = f % 1 /* b */;
// operator -
var r4a1 = a - a;
var r4a2 = a - b;
var r4a3 = a - c;
@@ -786,6 +791,7 @@ var r4h3 = c - 1 /* b */;
var r4h4 = d - 1 /* b */;
var r4h5 = e - 1 /* b */;
var r4h6 = f - 1 /* b */;
// operator <<
var r5a1 = a << a;
var r5a2 = a << b;
var r5a3 = a << c;
@@ -834,6 +840,7 @@ var r5h3 = c << 1 /* b */;
var r5h4 = d << 1 /* b */;
var r5h5 = e << 1 /* b */;
var r5h6 = f << 1 /* b */;
// operator >>
var r6a1 = a >> a;
var r6a2 = a >> b;
var r6a3 = a >> c;
@@ -882,6 +889,7 @@ var r6h3 = c >> 1 /* b */;
var r6h4 = d >> 1 /* b */;
var r6h5 = e >> 1 /* b */;
var r6h6 = f >> 1 /* b */;
// operator >>>
var r7a1 = a >>> a;
var r7a2 = a >>> b;
var r7a3 = a >>> c;
@@ -930,6 +938,7 @@ var r7h3 = c >>> 1 /* b */;
var r7h4 = d >>> 1 /* b */;
var r7h5 = e >>> 1 /* b */;
var r7h6 = f >>> 1 /* b */;
// operator &
var r8a1 = a & a;
var r8a2 = a & b;
var r8a3 = a & c;
@@ -978,6 +987,7 @@ var r8h3 = c & 1 /* b */;
var r8h4 = d & 1 /* b */;
var r8h5 = e & 1 /* b */;
var r8h6 = f & 1 /* b */;
// operator ^
var r9a1 = a ^ a;
var r9a2 = a ^ b;
var r9a3 = a ^ c;
@@ -1026,6 +1036,7 @@ var r9h3 = c ^ 1 /* b */;
var r9h4 = d ^ 1 /* b */;
var r9h5 = e ^ 1 /* b */;
var r9h6 = f ^ 1 /* b */;
// operator |
var r10a1 = a | a;
var r10a2 = a | b;
var r10a3 = a | c;
@@ -177,9 +177,12 @@ var r10d2 = '' | null;
var r10d3 = {} | null;
//// [arithmeticOperatorWithNullValueAndInvalidOperands.js]
// If one operand is the null or undefined value, it is treated as having the type of the
// other operand.
var a;
var b;
var c;
// operator *
var r1a1 = null * a;
var r1a2 = null * b;
var r1a3 = null * c;
@@ -192,6 +195,7 @@ var r1c3 = null * {};
var r1d1 = true * null;
var r1d2 = '' * null;
var r1d3 = {} * null;
// operator /
var r2a1 = null / a;
var r2a2 = null / b;
var r2a3 = null / c;
@@ -204,6 +208,7 @@ var r2c3 = null / {};
var r2d1 = true / null;
var r2d2 = '' / null;
var r2d3 = {} / null;
// operator %
var r3a1 = null % a;
var r3a2 = null % b;
var r3a3 = null % c;
@@ -216,6 +221,7 @@ var r3c3 = null % {};
var r3d1 = true % null;
var r3d2 = '' % null;
var r3d3 = {} % null;
// operator -
var r4a1 = null - a;
var r4a2 = null - b;
var r4a3 = null - c;
@@ -228,6 +234,7 @@ var r4c3 = null - {};
var r4d1 = true - null;
var r4d2 = '' - null;
var r4d3 = {} - null;
// operator <<
var r5a1 = null << a;
var r5a2 = null << b;
var r5a3 = null << c;
@@ -240,6 +247,7 @@ var r5c3 = null << {};
var r5d1 = true << null;
var r5d2 = '' << null;
var r5d3 = {} << null;
// operator >>
var r6a1 = null >> a;
var r6a2 = null >> b;
var r6a3 = null >> c;
@@ -252,6 +260,7 @@ var r6c3 = null >> {};
var r6d1 = true >> null;
var r6d2 = '' >> null;
var r6d3 = {} >> null;
// operator >>>
var r7a1 = null >>> a;
var r7a2 = null >>> b;
var r7a3 = null >>> c;
@@ -264,6 +273,7 @@ var r7c3 = null >>> {};
var r7d1 = true >>> null;
var r7d2 = '' >>> null;
var r7d3 = {} >>> null;
// operator &
var r8a1 = null & a;
var r8a2 = null & b;
var r8a3 = null & c;
@@ -276,6 +286,7 @@ var r8c3 = null & {};
var r8d1 = true & null;
var r8d2 = '' & null;
var r8d3 = {} & null;
// operator ^
var r9a1 = null ^ a;
var r9a2 = null ^ b;
var r9a3 = null ^ c;
@@ -288,6 +299,7 @@ var r9c3 = null ^ {};
var r9d1 = true ^ null;
var r9d2 = '' ^ null;
var r9d3 = {} ^ null;
// operator |
var r10a1 = null | a;
var r10a2 = null | b;
var r10a3 = null | c;
@@ -118,6 +118,7 @@ var E;
})(E || (E = {}));
var a;
var b;
// operator *
var ra1 = null * a;
var ra2 = null * b;
var ra3 = null * 1;
@@ -126,6 +127,7 @@ var ra5 = a * null;
var ra6 = b * null;
var ra7 = 0 * null;
var ra8 = 1 /* b */ * null;
// operator /
var rb1 = null / a;
var rb2 = null / b;
var rb3 = null / 1;
@@ -134,6 +136,7 @@ var rb5 = a / null;
var rb6 = b / null;
var rb7 = 0 / null;
var rb8 = 1 /* b */ / null;
// operator %
var rc1 = null % a;
var rc2 = null % b;
var rc3 = null % 1;
@@ -142,6 +145,7 @@ var rc5 = a % null;
var rc6 = b % null;
var rc7 = 0 % null;
var rc8 = 1 /* b */ % null;
// operator -
var rd1 = null - a;
var rd2 = null - b;
var rd3 = null - 1;
@@ -150,6 +154,7 @@ var rd5 = a - null;
var rd6 = b - null;
var rd7 = 0 - null;
var rd8 = 1 /* b */ - null;
// operator <<
var re1 = null << a;
var re2 = null << b;
var re3 = null << 1;
@@ -158,6 +163,7 @@ var re5 = a << null;
var re6 = b << null;
var re7 = 0 << null;
var re8 = 1 /* b */ << null;
// operator >>
var rf1 = null >> a;
var rf2 = null >> b;
var rf3 = null >> 1;
@@ -166,6 +172,7 @@ var rf5 = a >> null;
var rf6 = b >> null;
var rf7 = 0 >> null;
var rf8 = 1 /* b */ >> null;
// operator >>>
var rg1 = null >>> a;
var rg2 = null >>> b;
var rg3 = null >>> 1;
@@ -174,6 +181,7 @@ var rg5 = a >>> null;
var rg6 = b >>> null;
var rg7 = 0 >>> null;
var rg8 = 1 /* b */ >>> null;
// operator &
var rh1 = null & a;
var rh2 = null & b;
var rh3 = null & 1;
@@ -182,6 +190,7 @@ var rh5 = a & null;
var rh6 = b & null;
var rh7 = 0 & null;
var rh8 = 1 /* b */ & null;
// operator ^
var ri1 = null ^ a;
var ri2 = null ^ b;
var ri3 = null ^ 1;
@@ -190,6 +199,7 @@ var ri5 = a ^ null;
var ri6 = b ^ null;
var ri7 = 0 ^ null;
var ri8 = 1 /* b */ ^ null;
// operator |
var rj1 = null | a;
var rj2 = null | b;
var rj3 = null | 1;
@@ -60,42 +60,52 @@ var rj3 = undefined | null;
var rj4 = undefined | undefined;
//// [arithmeticOperatorWithOnlyNullValueOrUndefinedValue.js]
// operator *
var ra1 = null * null;
var ra2 = null * undefined;
var ra3 = undefined * null;
var ra4 = undefined * undefined;
// operator /
var rb1 = null / null;
var rb2 = null / undefined;
var rb3 = undefined / null;
var rb4 = undefined / undefined;
// operator %
var rc1 = null % null;
var rc2 = null % undefined;
var rc3 = undefined % null;
var rc4 = undefined % undefined;
// operator -
var rd1 = null - null;
var rd2 = null - undefined;
var rd3 = undefined - null;
var rd4 = undefined - undefined;
// operator <<
var re1 = null << null;
var re2 = null << undefined;
var re3 = undefined << null;
var re4 = undefined << undefined;
// operator >>
var rf1 = null >> null;
var rf2 = null >> undefined;
var rf3 = undefined >> null;
var rf4 = undefined >> undefined;
// operator >>>
var rg1 = null >>> null;
var rg2 = null >>> undefined;
var rg3 = undefined >>> null;
var rg4 = undefined >>> undefined;
// operator &
var rh1 = null & null;
var rh2 = null & undefined;
var rh3 = undefined & null;
var rh4 = undefined & undefined;
// operator ^
var ri1 = null ^ null;
var ri2 = null ^ undefined;
var ri3 = undefined ^ null;
var ri4 = undefined ^ undefined;
// operator |
var rj1 = null | null;
var rj2 = null | undefined;
var rj3 = undefined | null;
@@ -177,9 +177,12 @@ var r10d2 = '' | undefined;
var r10d3 = {} | undefined;
//// [arithmeticOperatorWithUndefinedValueAndInvalidOperands.js]
// If one operand is the undefined or undefined value, it is treated as having the type of the
// other operand.
var a;
var b;
var c;
// operator *
var r1a1 = undefined * a;
var r1a2 = undefined * b;
var r1a3 = undefined * c;
@@ -192,6 +195,7 @@ var r1c3 = undefined * {};
var r1d1 = true * undefined;
var r1d2 = '' * undefined;
var r1d3 = {} * undefined;
// operator /
var r2a1 = undefined / a;
var r2a2 = undefined / b;
var r2a3 = undefined / c;
@@ -204,6 +208,7 @@ var r2c3 = undefined / {};
var r2d1 = true / undefined;
var r2d2 = '' / undefined;
var r2d3 = {} / undefined;
// operator %
var r3a1 = undefined % a;
var r3a2 = undefined % b;
var r3a3 = undefined % c;
@@ -216,6 +221,7 @@ var r3c3 = undefined % {};
var r3d1 = true % undefined;
var r3d2 = '' % undefined;
var r3d3 = {} % undefined;
// operator -
var r4a1 = undefined - a;
var r4a2 = undefined - b;
var r4a3 = undefined - c;
@@ -228,6 +234,7 @@ var r4c3 = undefined - {};
var r4d1 = true - undefined;
var r4d2 = '' - undefined;
var r4d3 = {} - undefined;
// operator <<
var r5a1 = undefined << a;
var r5a2 = undefined << b;
var r5a3 = undefined << c;
@@ -240,6 +247,7 @@ var r5c3 = undefined << {};
var r5d1 = true << undefined;
var r5d2 = '' << undefined;
var r5d3 = {} << undefined;
// operator >>
var r6a1 = undefined >> a;
var r6a2 = undefined >> b;
var r6a3 = undefined >> c;
@@ -252,6 +260,7 @@ var r6c3 = undefined >> {};
var r6d1 = true >> undefined;
var r6d2 = '' >> undefined;
var r6d3 = {} >> undefined;
// operator >>>
var r7a1 = undefined >>> a;
var r7a2 = undefined >>> b;
var r7a3 = undefined >>> c;
@@ -264,6 +273,7 @@ var r7c3 = undefined >>> {};
var r7d1 = true >>> undefined;
var r7d2 = '' >>> undefined;
var r7d3 = {} >>> undefined;
// operator &
var r8a1 = undefined & a;
var r8a2 = undefined & b;
var r8a3 = undefined & c;
@@ -276,6 +286,7 @@ var r8c3 = undefined & {};
var r8d1 = true & undefined;
var r8d2 = '' & undefined;
var r8d3 = {} & undefined;
// operator ^
var r9a1 = undefined ^ a;
var r9a2 = undefined ^ b;
var r9a3 = undefined ^ c;
@@ -288,6 +299,7 @@ var r9c3 = undefined ^ {};
var r9d1 = true ^ undefined;
var r9d2 = '' ^ undefined;
var r9d3 = {} ^ undefined;
// operator |
var r10a1 = undefined | a;
var r10a2 = undefined | b;
var r10a3 = undefined | c;
@@ -118,6 +118,7 @@ var E;
})(E || (E = {}));
var a;
var b;
// operator *
var ra1 = undefined * a;
var ra2 = undefined * b;
var ra3 = undefined * 1;
@@ -126,6 +127,7 @@ var ra5 = a * undefined;
var ra6 = b * undefined;
var ra7 = 0 * undefined;
var ra8 = 1 /* b */ * undefined;
// operator /
var rb1 = undefined / a;
var rb2 = undefined / b;
var rb3 = undefined / 1;
@@ -134,6 +136,7 @@ var rb5 = a / undefined;
var rb6 = b / undefined;
var rb7 = 0 / undefined;
var rb8 = 1 /* b */ / undefined;
// operator %
var rc1 = undefined % a;
var rc2 = undefined % b;
var rc3 = undefined % 1;
@@ -142,6 +145,7 @@ var rc5 = a % undefined;
var rc6 = b % undefined;
var rc7 = 0 % undefined;
var rc8 = 1 /* b */ % undefined;
// operator -
var rd1 = undefined - a;
var rd2 = undefined - b;
var rd3 = undefined - 1;
@@ -150,6 +154,7 @@ var rd5 = a - undefined;
var rd6 = b - undefined;
var rd7 = 0 - undefined;
var rd8 = 1 /* b */ - undefined;
// operator <<
var re1 = undefined << a;
var re2 = undefined << b;
var re3 = undefined << 1;
@@ -158,6 +163,7 @@ var re5 = a << undefined;
var re6 = b << undefined;
var re7 = 0 << undefined;
var re8 = 1 /* b */ << undefined;
// operator >>
var rf1 = undefined >> a;
var rf2 = undefined >> b;
var rf3 = undefined >> 1;
@@ -166,6 +172,7 @@ var rf5 = a >> undefined;
var rf6 = b >> undefined;
var rf7 = 0 >> undefined;
var rf8 = 1 /* b */ >> undefined;
// operator >>>
var rg1 = undefined >>> a;
var rg2 = undefined >>> b;
var rg3 = undefined >>> 1;
@@ -174,6 +181,7 @@ var rg5 = a >>> undefined;
var rg6 = b >>> undefined;
var rg7 = 0 >>> undefined;
var rg8 = 1 /* b */ >>> undefined;
// operator &
var rh1 = undefined & a;
var rh2 = undefined & b;
var rh3 = undefined & 1;
@@ -182,6 +190,7 @@ var rh5 = a & undefined;
var rh6 = b & undefined;
var rh7 = 0 & undefined;
var rh8 = 1 /* b */ & undefined;
// operator ^
var ri1 = undefined ^ a;
var ri2 = undefined ^ b;
var ri3 = undefined ^ 1;
@@ -190,6 +199,7 @@ var ri5 = a ^ undefined;
var ri6 = b ^ undefined;
var ri7 = 0 ^ undefined;
var ri8 = 1 /* b */ ^ undefined;
// operator |
var rj1 = undefined | a;
var rj2 = undefined | b;
var rj3 = undefined | 1;
@@ -121,6 +121,17 @@ var C3 = (function () {
};
return C3;
})();
/*
This behaves unexpectedly with the following types:
Type 1 of any[]:
* Type 2 of the following throws an error but shouldn't: () => void[], SomeClass[], and {one: 1}[].
* Type 2 of the following doesn't throw an error but should: {one: 1}, new() => SomeClass, SomeClass.
*/
var a1 = null;
var c1 = new C1();
var i1 = c1;
@@ -95,6 +95,17 @@ var C3 = (function () {
};
return C3;
})();
/*
This behaves unexpectedly with the following types:
Type 1 of any[]:
* Type 2 of the following throws an error but shouldn't: () => void[], SomeClass[], and {one: 1}[].
* Type 2 of the following doesn't throw an error but should: {one: 1}, new() => SomeClass, SomeClass.
*/
var a1 = null;
var c1 = new C1();
var i1 = c1;
@@ -35,6 +35,17 @@ var C3 = (function () {
};
return C3;
})();
/*
This behaves unexpectedly with teh following types:
Type 1 of any[]:
* Type 2 of the following throws an error but shouldn't: () => void[], SomeClass[], and {one: 1}[].
* Type 2 of the following doesn't throw an error but should: {one: 1}, new() => SomeClass, SomeClass.
*/
var c3 = new C3();
var o1 = { one: 1 };
var arr_any = [];
@@ -102,6 +102,7 @@ var f = (function () {
var t2 = [{ x: true, y: new derived() }, { x: false, y: new base() }];
var t3 = [{ x: undefined, y: new base() }, { x: '', y: new derived() }];
var anyObj = null;
// Order matters here so test all the variants
var a1 = [{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }];
var a2 = [{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }];
var a3 = [{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }];
@@ -16,6 +16,7 @@ var y2: number[] = [1, 2];
var y2: number[] = new Array<number>();
//// [arrayLiteral.js]
// valid uses of array literals
var x = [];
var x = new Array(1);
var y = [1];
@@ -15,6 +15,7 @@ var c = [[[null]],[undefined]]
//// [arrayLiteralWidened.js]
// array literals are widened upon assignment according to their element type
var a = [];
var a = [null, null];
var a = [undefined, undefined];
@@ -16,6 +16,7 @@ var gs = [(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) =>
//// [arrayLiteralWithMultipleBestCommonTypes.js]
// when multiple best common types exist we will choose the first candidate
var a;
var b;
var c;
@@ -51,10 +51,12 @@ var __extends = this.__extends || function (d, b) {
__.prototype = b.prototype;
d.prototype = new __();
};
// Empty array literal with no contextual type has type Undefined[]
var arr1 = [[], [1], ['']];
var arr1;
var arr2 = [[null], [1], ['']];
var arr2;
// Array literal with elements of only EveryType E has type E[]
var stringArrArr = [[''], [""]];
var stringArrArr;
var stringArr = ['', ""];
@@ -72,6 +74,7 @@ var classArr = [new C(), new C()];
var classArr;
var classTypeArray = [C, C, C];
var classTypeArray;
// Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[]
var context1 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }];
var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }];
var context2;
@@ -97,4 +100,5 @@ var Derived2 = (function (_super) {
})(Base);
;
var context3 = [new Derived1(), new Derived2()];
// Contextual type C with numeric index signature of type Base makes array literal of Derived1 and Derived2 have type Base[]
var context4 = [new Derived1(), new Derived1()];
@@ -27,6 +27,7 @@ var r6 = z2[0];
var r7 = r6(''); // any not string
//// [arrayOfFunctionTypes3.js]
// valid uses of arrays of function types
var x = [function () { return 1; }, function () {
}];
var r2 = x[0]();
@@ -17,6 +17,7 @@ var r6 = r5();
var r6b = new r5(); // error
//// [arrayTypeOfFunctionTypes.js]
// valid uses of arrays of function types
var x;
var r = x[1];
var r2 = r();
@@ -17,6 +17,7 @@ var r6 = new r5();
var r6b = r5();
//// [arrayTypeOfFunctionTypes2.js]
// valid uses of arrays of function types
var x;
var r = x[1];
var r2 = new r();
@@ -120,6 +120,7 @@ var Derived = (function (_super) {
return Derived;
})(Base);
window.setTimeout(function () { return null; }, 100);
// Arrow function as value in array literal
var obj = function (n) { return ''; };
var obj;
var arr = [function (n) { return ''; }];
@@ -153,6 +154,7 @@ var M2;
return Derived;
})(Base);
window.setTimeout(function () { return null; }, 100);
// Arrow function as value in array literal
var obj = function (n) { return ''; };
var obj;
var arr = [function (n) { return ''; }];
@@ -168,12 +170,14 @@ var M2;
var b = function (s) { return s; };
})(M || (M = {}));
})(M2 || (M2 = {}));
// <Identifier>(ParamList) => { ... } is a generic arrow function
var generic1 = function (n) { return [n]; };
var generic1;
var generic2 = function (n) {
return [n];
};
var generic2;
// <Identifier> ((ParamList) => { ... } ) is a type assertion to an arrow function
var asserted1 = (function (n) { return [n]; });
var asserted1;
var asserted2 = (function (n) {
@@ -89,16 +89,19 @@ function tryCatchFn() {
//// [arrowFunctionExpressions.js]
// ArrowFormalParameters => AssignmentExpression is equivalent to ArrowFormalParameters => { return AssignmentExpression; }
var a = function (p) { return p.length; };
var a = function (p) {
return p.length;
};
// Identifier => Block is equivalent to(Identifier) => Block
var b = function (j) {
return 0;
};
var b = function (j) {
return 0;
};
// Identifier => AssignmentExpression is equivalent to(Identifier) => AssignmentExpression
var c;
var d = function (n) { return c = n; };
var d = function (n) { return c = n; };
@@ -116,6 +119,7 @@ var MyClass = (function () {
};
return MyClass;
})();
// Arrow function used in arrow function
var arrrr = function () { return function (m) { return function () { return function (n) { return m + n; }; }; }; };
var e = arrrr()(3)()(4);
var e;
@@ -135,6 +139,7 @@ function outerFn() {
var p;
}
}
// Arrow function used in nested function in arrow function
var f = function (n) {
function fn(x) {
return function () { return n + x; };
@@ -46,6 +46,7 @@ function k<T>(a: T) {
}
//// [assignAnyToEveryType.js]
// all of these are valid
var x;
var a = x;
var b = x;
@@ -56,6 +56,7 @@ function j<T>(a: T) {
}
//// [assignEveryTypeToAny.js]
// all of these are valid
var x;
x = 1;
var a = 2;
@@ -5,4 +5,5 @@ declare var y:any;
var x = new y = 5;
//// [assignToInvalidLHS.js]
// Below is actually valid JavaScript (see http://es5.github.com/#x8.7 ), even though will always fail at runtime with 'invalid left-hand side'
var x = new y = 5;
@@ -135,6 +135,7 @@ var Errors;
})(Base);
var WithNonGenericSignaturesInBaseType;
(function (WithNonGenericSignaturesInBaseType) {
// target type with non-generic call signatures
var a2;
var a7;
var a8;
@@ -178,10 +179,12 @@ var Errors;
})(WithNonGenericSignaturesInBaseType || (WithNonGenericSignaturesInBaseType = {}));
var WithGenericSignaturesInBaseType;
(function (WithGenericSignaturesInBaseType) {
// target type has generic call signature
var a2;
var b2;
a2 = b2;
b2 = a2;
// target type has generic call signature
var a3;
var b3;
a3 = b3;
@@ -135,6 +135,7 @@ var Errors;
})(Base);
var WithNonGenericSignaturesInBaseType;
(function (WithNonGenericSignaturesInBaseType) {
// target type with non-generic call signatures
var a2;
var a7;
var a8;
@@ -178,10 +179,12 @@ var Errors;
})(WithNonGenericSignaturesInBaseType || (WithNonGenericSignaturesInBaseType = {}));
var WithGenericSignaturesInBaseType;
(function (WithGenericSignaturesInBaseType) {
// target type has generic call signature
var a2;
var b2;
a2 = b2;
b2 = a2;
// target type has generic call signature
var a3;
var b3;
a3 = b3;
@@ -8,6 +8,7 @@ f = g; // ok
g = f; // ok
//// [assignmentCompatWithGenericCallSignatures.js]
// some complex cases of assignment compat of generic signatures that stress contextual signature instantiation
var f;
var g;
f = g;
@@ -26,11 +26,13 @@ function fn2(x4: number) {
//// [assignmentLHSIsReference.js]
var value;
// identifiers: variable and parameter
var x1;
x1 = value;
function fn1(x2) {
x2 = value;
}
// property accesses
var x3;
x3.a = value;
x3['a'] = value;
@@ -37,14 +37,17 @@ module x6b { export var y = 2; } // error
//// [augmentedTypesVar.js]
// var then var
var x1 = 1;
var x1 = 2;
// var then function
var x2 = 1;
function x2() {
}
var x3 = 1;
var x3 = function () {
};
// var then class
var x4 = 1;
var x4 = (function () {
function x4() {
@@ -59,11 +62,13 @@ var x4a = (function () {
};
return x4a;
})();
// var then enum
var x5 = 1;
var x5;
(function (x5) {
x5[x5["One"] = 0] = "One";
})(x5 || (x5 = {}));
// var then module
var x6 = 1;
var x6a = 1;
var x6a;
@@ -33,6 +33,8 @@ var __extends = this.__extends || function (d, b) {
__.prototype = b.prototype;
d.prototype = new __();
};
// conditional expressions return the best common type of the branches plus contextual type (using the first candidate if multiple BCTs exist)
// no errors expected here
var a;
var b;
var Base = (function () {
@@ -22,6 +22,9 @@ var contextualOr: Contextual = e || e; // Ellement
//// [bestCommonTypeWithContextualTyping.js]
var e;
// All of these should pass. Neither type is a supertype of the other, but the RHS should
// always use Ellement in these examples (not Contextual). Because Ellement is assignable
// to Contextual, no errors.
var arr = [e];
var obj = { s: e };
var conditional = null ? e : e;
@@ -19,6 +19,7 @@ var b6 = [z, y, x];
var x;
var y;
var z;
// All these arrays should be X[]
var b1 = [x, y, z];
var b2 = [x, z, y];
var b3 = [y, x, z];
@@ -63,6 +63,7 @@ var ResultIsNumber20 = ~~~(ANY + ANY1);
~~obj1.x;
//// [bitwiseNotOperatorWithAnyOtherType.js]
// ~ operator on any type
var ANY;
var ANY1;
var ANY2 = ["", ""];
@@ -87,14 +88,17 @@ var M;
M.n;
})(M || (M = {}));
var objA = new A();
// any other type var
var ResultIsNumber = ~ANY1;
var ResultIsNumber1 = ~ANY2;
var ResultIsNumber2 = ~A;
var ResultIsNumber3 = ~M;
var ResultIsNumber4 = ~obj;
var ResultIsNumber5 = ~obj1;
// any type literal
var ResultIsNumber6 = ~undefined;
var ResultIsNumber7 = ~null;
// any type expressions
var ResultIsNumber8 = ~ANY2[0];
var ResultIsNumber9 = ~obj1.x;
var ResultIsNumber10 = ~obj1.y;
@@ -106,6 +110,7 @@ var ResultIsNumber15 = ~(ANY + ANY1);
var ResultIsNumber16 = ~(null + undefined);
var ResultIsNumber17 = ~(null + null);
var ResultIsNumber18 = ~(undefined + undefined);
// multiple ~ operators
var ResultIsNumber19 = ~~ANY;
var ResultIsNumber20 = ~~~(ANY + ANY1);
~ANY;
@@ -39,6 +39,7 @@ var ResultIsNumber8 = ~~BOOLEAN;
~M.n;
//// [bitwiseNotOperatorWithBooleanType.js]
// ~ operator on boolean type
var BOOLEAN;
function foo() {
return true;
@@ -56,13 +57,17 @@ var M;
M.n;
})(M || (M = {}));
var objA = new A();
// boolean type var
var ResultIsNumber1 = ~BOOLEAN;
// boolean type literal
var ResultIsNumber2 = ~true;
var ResultIsNumber3 = ~{ x: true, y: false };
// boolean type expressions
var ResultIsNumber4 = ~objA.a;
var ResultIsNumber5 = ~M.n;
var ResultIsNumber6 = ~foo();
var ResultIsNumber7 = ~A.foo();
// multiple ~ operators
var ResultIsNumber8 = ~~BOOLEAN;
~true;
~BOOLEAN;
@@ -26,9 +26,12 @@ var ENUM1;
ENUM1[ENUM1[""] = 2] = "";
})(ENUM1 || (ENUM1 = {}));
;
// enum type var
var ResultIsNumber1 = ~ENUM1;
// enum type expressions
var ResultIsNumber2 = ~ENUM1[1];
var ResultIsNumber3 = ~(ENUM1[1] + ENUM1[2]);
// multiple ~ operators
var ResultIsNumber4 = ~~~(ENUM1[1] + ENUM1[2]);
~ENUM1;
~ENUM1[1];
@@ -45,6 +45,7 @@ var ResultIsNumber13 = ~~~(NUMBER + NUMBER);
~objA.a, M.n;
//// [bitwiseNotOperatorWithNumberType.js]
// ~ operator on number type
var NUMBER;
var NUMBER1 = [1, 2];
function foo() {
@@ -63,19 +64,23 @@ var M;
M.n;
})(M || (M = {}));
var objA = new A();
// number type var
var ResultIsNumber1 = ~NUMBER;
var ResultIsNumber2 = ~NUMBER1;
// number type literal
var ResultIsNumber3 = ~1;
var ResultIsNumber4 = ~{ x: 1, y: 2 };
var ResultIsNumber5 = ~{ x: 1, y: function (n) {
return n;
} };
// number type expressions
var ResultIsNumber6 = ~objA.a;
var ResultIsNumber7 = ~M.n;
var ResultIsNumber8 = ~NUMBER1[0];
var ResultIsNumber9 = ~foo();
var ResultIsNumber10 = ~A.foo();
var ResultIsNumber11 = ~(NUMBER + NUMBER);
// multiple ~ operators
var ResultIsNumber12 = ~~NUMBER;
var ResultIsNumber13 = ~~~(NUMBER + NUMBER);
~NUMBER;
@@ -44,6 +44,7 @@ var ResultIsNumber14 = ~~~(STRING + STRING);
~objA.a,M.n;
//// [bitwiseNotOperatorWithStringType.js]
// ~ operator on string type
var STRING;
var STRING1 = ["", "abc"];
function foo() {
@@ -62,13 +63,16 @@ var M;
M.n;
})(M || (M = {}));
var objA = new A();
// string type var
var ResultIsNumber1 = ~STRING;
var ResultIsNumber2 = ~STRING1;
// string type literal
var ResultIsNumber3 = ~"";
var ResultIsNumber4 = ~{ x: "", y: "" };
var ResultIsNumber5 = ~{ x: "", y: function (s) {
return s;
} };
// string type expressions
var ResultIsNumber6 = ~objA.a;
var ResultIsNumber7 = ~M.n;
var ResultIsNumber8 = ~STRING1[0];
@@ -76,6 +80,7 @@ var ResultIsNumber9 = ~foo();
var ResultIsNumber10 = ~A.foo();
var ResultIsNumber11 = ~(STRING + STRING);
var ResultIsNumber12 = ~STRING.charAt(0);
// multiple ~ operators
var ResultIsNumber13 = ~~STRING;
var ResultIsNumber14 = ~~~(STRING + STRING);
~STRING;
@@ -26,6 +26,7 @@ var Foo = (function () {
};
return Foo;
})();
//class Foo(s: String);
var f1 = new Foo("hey");
f1.bar1();
Foo();
@@ -27,6 +27,7 @@ var Foo = (function () {
};
return Foo;
})();
//class Foo(s: String);
var f1 = new Foo("hey");
f1.bar1("a");
Foo();
@@ -16,5 +16,6 @@ var r2 = x.foo(''); // error
//// [callSignaturesThatDifferOnlyByReturnType2.js]
var x;
// BUG 822524
var r = x.foo(1);
var r2 = x.foo('');
@@ -89,6 +89,7 @@ i();
i(1);
i.foo(1);
i.foo(1, 2);
// these are errors
var a;
a();
a(1);
@@ -44,6 +44,7 @@ var C2 = (function (_super) {
}
return C2;
})(A);
// no errors
var c;
var c2;
c = c2;
@@ -30,6 +30,7 @@ var CCC = (function () {
CCC.staticY = aaa;
return CCC;
})();
// above is equivalent to this:
var aaaa = 1;
var CCCC = (function () {
function CCCC(aaaa) {
@@ -37,6 +37,7 @@ var C = (function () {
C.g = function () { return ''; };
return C;
})();
// all of these are valid
var c = new C();
var r1 = c.x;
var r2 = c.a;
@@ -48,11 +48,13 @@ BOOLEAN, ANY;
NUMBER, ANY;
STRING, ANY;
OBJECT, ANY;
//Return type is any
var resultIsAny1 = (ANY, ANY);
var resultIsAny2 = (BOOLEAN, ANY);
var resultIsAny3 = (NUMBER, ANY);
var resultIsAny4 = (STRING, ANY);
var resultIsAny5 = (OBJECT, ANY);
//Literal and expression
var x;
1, ANY;
++NUMBER, ANY;
@@ -46,6 +46,7 @@ BOOLEAN, BOOLEAN;
NUMBER, BOOLEAN;
STRING, BOOLEAN;
OBJECT, BOOLEAN;
//Return type is boolean
var resultIsBoolean1 = (ANY, BOOLEAN);
var resultIsBoolean2 = (BOOLEAN, BOOLEAN);
var resultIsBoolean3 = (NUMBER, BOOLEAN);
@@ -46,6 +46,7 @@ BOOLEAN, NUMBER;
NUMBER, NUMBER;
STRING, NUMBER;
OBJECT, NUMBER;
//Return type is number
var resultIsNumber1 = (ANY, NUMBER);
var resultIsNumber2 = (BOOLEAN, NUMBER);
var resultIsNumber3 = (NUMBER, NUMBER);
@@ -55,6 +55,7 @@ BOOLEAN, OBJECT;
NUMBER, OBJECT;
STRING, OBJECT;
OBJECT, OBJECT;
//Return type is Object
var resultIsObject1 = (ANY, OBJECT);
var resultIsObject2 = (BOOLEAN, OBJECT);
var resultIsObject3 = (NUMBER, OBJECT);
@@ -49,6 +49,7 @@ BOOLEAN, STRING;
NUMBER, STRING;
STRING, STRING;
OBJECT, STRING;
//Return type is string
var resultIsString1 = (ANY, STRING);
var resultIsString2 = (BOOLEAN, STRING);
var resultIsString3 = (NUMBER, STRING);
@@ -37,6 +37,7 @@ BOOLEAN, NUMBER, STRING;
NUMBER, STRING, OBJECT;
STRING, OBJECT, ANY;
OBJECT, ANY, BOOLEAN;
//Results should have the same type as the third operand
var resultIsAny1 = (STRING, OBJECT, ANY);
var resultIsBoolean1 = (OBJECT, ANY, BOOLEAN);
var resultIsNumber1 = (ANY, BOOLEAN, NUMBER);
@@ -6,6 +6,7 @@ s.map(// do something
//// [commentInMethodCall.js]
//commment here
var s;
s.map(function () {
});
@@ -5,5 +5,6 @@ export var b: number;
//// [commentsBeforeVariableStatement1.js]
define(["require", "exports"], function (require, exports) {
/** b's comment*/
exports.b;
});
@@ -64,6 +64,7 @@ var newVar2 = new extMod.m4.m2.c();
//// [commentsExternalModules_0.js]
define(["require", "exports"], function (require, exports) {
(function (m1) {
/** b's comment*/
m1.b;
function foo() {
return m1.b;
@@ -76,6 +77,7 @@ define(["require", "exports"], function (require, exports) {
})();
m2.c = c;
;
/** i*/
m2.i = new c();
})(m1.m2 || (m1.m2 = {}));
var m2 = m1.m2;
@@ -88,6 +90,7 @@ define(["require", "exports"], function (require, exports) {
m1.fooExport();
var myvar = new m1.m2.c();
(function (m4) {
/** b's comment */
m4.b;
function foo() {
return m4.b;
@@ -100,6 +103,7 @@ define(["require", "exports"], function (require, exports) {
})();
m2.c = c;
;
/** i */
m2.i = new c();
})(m4.m2 || (m4.m2 = {}));
var m2 = m4.m2;
@@ -32,9 +32,13 @@ function fooWithParameters(a, b) {
var d = a;
}
fooWithParameters("a", 10);
/** fooFunc
* comment
*/
var fooFunc = function FooFunctionValue(b) {
return b;
};
/// lamdaFoo var comment
var lambdaFoo = function (a, b) { return a + b; };
var lambddaNoVarComment = function (a, b) { return a * b; };
lambdaFoo(10, 20);
@@ -100,6 +100,7 @@ new m7.m8.m9.c();
//// [commentsModules.js]
var m1;
(function (m1) {
/** b's comment*/
m1.b;
function foo() {
return m1.b;
@@ -112,6 +113,7 @@ var m1;
})();
m2.c = c;
;
/** i*/
m2.i = new c();
})(m1.m2 || (m1.m2 = {}));
var m2 = m1.m2;
@@ -14,6 +14,7 @@ var DebugClass = (function () {
function DebugClass() {
}
DebugClass.debugFunc = function () {
// Start Debugger Test Code
var i = 0;
return true;
};
@@ -44,15 +44,28 @@ var n4: (x: number) => string;
n4 = z2;
//// [commentsVarDecl.js]
/** Variable comments*/
var myVariable = 10;
/** This is another variable comment*/
var anotherVariable = 30;
// shouldn't appear
var aVar = "";
/** this is multiline comment
* All these variables are of number type */
var anotherAnotherVariable = 70;
/** Triple slash multiline comment*/
/** another line in the comment*/
/** comment line 2*/
var x = 70;
x = myVariable;
/** triple slash comment1*/
/** jsdocstyle comment - only this comment should be in .d.ts file*/
var n = 30;
/** var deckaration with comment on type as well*/
var y = 20;
/// var deckaration with comment on type as well
var yy = 20;
/** comment2 */
var z = function (x, y) { return x + y; };
var z2;
var x2 = z2;
@@ -4,6 +4,7 @@
var v = 1;
//// [commentsVariableStatement1.js]
/** Comment */
var v = 1;
@@ -89,9 +89,11 @@ declare var x;
//// [commentsdoNotEmitComments.js]
/** Variable comments*/
var myVariable = 10;
function foo(p) {
}
/** variable with function type comment*/
var fooVar;
foo(50);
fooVar();
@@ -117,7 +119,9 @@ var c = (function () {
};
return c;
})();
/**instance comment*/
var i = new c();
/**interface instance comments*/
var i1_i;
var m1;
(function (m1) {
@@ -89,9 +89,11 @@ declare var x;
//// [commentsemitComments.js]
/** Variable comments*/
var myVariable = 10;
function foo(p) {
}
/** variable with function type comment*/
var fooVar;
foo(50);
fooVar();
@@ -117,7 +119,9 @@ var c = (function () {
};
return c;
})();
/**instance comment*/
var i = new c();
/**interface instance comments*/
var i1_i;
var m1;
(function (m1) {
@@ -253,6 +253,7 @@ var b5;
var b6;
var base1;
var base2;
// operator <
var r1a1 = a1 < b1;
var r1a2 = base1 < base2;
var r1a3 = a2 < b2;
@@ -267,6 +268,7 @@ var r1b4 = b3 < a3;
var r1b5 = b4 < a4;
var r1b6 = b5 < a5;
var r1b7 = b6 < a6;
// operator >
var r2a1 = a1 > b1;
var r2a2 = base1 > base2;
var r2a3 = a2 > b2;
@@ -281,6 +283,7 @@ var r2b4 = b3 > a3;
var r2b5 = b4 > a4;
var r2b6 = b5 > a5;
var r2b7 = b6 > a6;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = base1 <= base2;
var r3a3 = a2 <= b2;
@@ -295,6 +298,7 @@ var r3b4 = b3 <= a3;
var r3b5 = b4 <= a4;
var r3b6 = b5 <= a5;
var r3b7 = b6 <= a6;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = base1 >= base2;
var r4a3 = a2 >= b2;
@@ -309,6 +313,7 @@ var r4b4 = b3 >= a3;
var r4b5 = b4 >= a4;
var r4b6 = b5 >= a5;
var r4b7 = b6 >= a6;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = base1 == base2;
var r5a3 = a2 == b2;
@@ -323,6 +328,7 @@ var r5b4 = b3 == a3;
var r5b5 = b4 == a4;
var r5b6 = b5 == a5;
var r5b7 = b6 == a6;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = base1 != base2;
var r6a3 = a2 != b2;
@@ -337,6 +343,7 @@ var r6b4 = b3 != a3;
var r6b5 = b4 != a4;
var r6b6 = b5 != a5;
var r6b7 = b6 != a6;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = base1 === base2;
var r7a3 = a2 === b2;
@@ -351,6 +358,7 @@ var r7b4 = b3 === a3;
var r7b5 = b4 === a4;
var r7b6 = b5 === a5;
var r7b7 = b6 === a6;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = base1 !== base2;
var r8a3 = a2 !== b2;
@@ -91,6 +91,7 @@ var b;
var c;
var d;
var e;
// operator <
var ra1 = a < a;
var ra2 = b < b;
var ra3 = c < c;
@@ -98,6 +99,7 @@ var ra4 = d < d;
var ra5 = e < e;
var ra6 = null < null;
var ra7 = undefined < undefined;
// operator >
var rb1 = a > a;
var rb2 = b > b;
var rb3 = c > c;
@@ -105,6 +107,7 @@ var rb4 = d > d;
var rb5 = e > e;
var rb6 = null > null;
var rb7 = undefined > undefined;
// operator <=
var rc1 = a <= a;
var rc2 = b <= b;
var rc3 = c <= c;
@@ -112,6 +115,7 @@ var rc4 = d <= d;
var rc5 = e <= e;
var rc6 = null <= null;
var rc7 = undefined <= undefined;
// operator >=
var rd1 = a >= a;
var rd2 = b >= b;
var rd3 = c >= c;
@@ -119,6 +123,7 @@ var rd4 = d >= d;
var rd5 = e >= e;
var rd6 = null >= null;
var rd7 = undefined >= undefined;
// operator ==
var re1 = a == a;
var re2 = b == b;
var re3 = c == c;
@@ -126,6 +131,7 @@ var re4 = d == d;
var re5 = e == e;
var re6 = null == null;
var re7 = undefined == undefined;
// operator !=
var rf1 = a != a;
var rf2 = b != b;
var rf3 = c != c;
@@ -133,6 +139,7 @@ var rf4 = d != d;
var rf5 = e != e;
var rf6 = null != null;
var rf7 = undefined != undefined;
// operator ===
var rg1 = a === a;
var rg2 = b === b;
var rg3 = c === c;
@@ -140,6 +147,7 @@ var rg4 = d === d;
var rg5 = e === e;
var rg6 = null === null;
var rg7 = undefined === undefined;
// operator !==
var rh1 = a !== a;
var rh2 = b !== b;
var rh3 = c !== c;
@@ -206,6 +206,7 @@ var a6;
var b6;
var a7;
var b7;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1a3 = a3 < b3;
@@ -220,6 +221,7 @@ var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2a3 = a3 > b3;
@@ -234,6 +236,7 @@ var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3a3 = a3 <= b3;
@@ -248,6 +251,7 @@ var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4a3 = a3 >= b3;
@@ -262,6 +266,7 @@ var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5a3 = a3 == b3;
@@ -276,6 +281,7 @@ var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6a3 = a3 != b3;
@@ -290,6 +296,7 @@ var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7a3 = a3 === b3;
@@ -304,6 +311,7 @@ var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8a3 = a3 !== b3;
@@ -206,6 +206,7 @@ var a6;
var b6;
var a7;
var b7;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1a3 = a3 < b3;
@@ -220,6 +221,7 @@ var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2a3 = a3 > b3;
@@ -234,6 +236,7 @@ var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3a3 = a3 <= b3;
@@ -248,6 +251,7 @@ var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4a3 = a3 >= b3;
@@ -262,6 +266,7 @@ var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5a3 = a3 == b3;
@@ -276,6 +281,7 @@ var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6a3 = a3 != b3;
@@ -290,6 +296,7 @@ var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7a3 = a3 === b3;
@@ -304,6 +311,7 @@ var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8a3 = a3 !== b3;
@@ -143,6 +143,7 @@ var a3;
var b3;
var a4;
var b4;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1a3 = a3 < b3;
@@ -151,6 +152,7 @@ var r1b1 = b1 < a1;
var r1b2 = b2 < a2;
var r1b3 = b3 < a3;
var r1b4 = b4 < a4;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2a3 = a3 > b3;
@@ -159,6 +161,7 @@ var r2b1 = b1 > a1;
var r2b2 = b2 > a2;
var r2b3 = b3 > a3;
var r2b4 = b4 > a4;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3a3 = a3 <= b3;
@@ -167,6 +170,7 @@ var r3b1 = b1 <= a1;
var r3b2 = b2 <= a2;
var r3b3 = b3 <= a3;
var r3b4 = b4 <= a4;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4a3 = a3 >= b3;
@@ -175,6 +179,7 @@ var r4b1 = b1 >= a1;
var r4b2 = b2 >= a2;
var r4b3 = b3 >= a3;
var r4b4 = b4 >= a4;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5a3 = a3 == b3;
@@ -183,6 +188,7 @@ var r5b1 = b1 == a1;
var r5b2 = b2 == a2;
var r5b3 = b3 == a3;
var r5b4 = b4 == a4;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6a3 = a3 != b3;
@@ -191,6 +197,7 @@ var r6b1 = b1 != a1;
var r6b2 = b2 != a2;
var r6b3 = b3 != a3;
var r6b4 = b4 != a4;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7a3 = a3 === b3;
@@ -199,6 +206,7 @@ var r7b1 = b1 === a1;
var r7b2 = b2 === a2;
var r7b3 = b3 === a3;
var r7b4 = b4 === a4;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8a3 = a3 !== b3;
@@ -185,6 +185,7 @@ var a5;
var b5;
var a6;
var b6;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1a3 = a3 < b3;
@@ -197,6 +198,7 @@ var r1b3 = b3 < a3;
var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2a3 = a3 > b3;
@@ -209,6 +211,7 @@ var r2b3 = b3 > a3;
var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3a3 = a3 <= b3;
@@ -221,6 +224,7 @@ var r3b3 = b3 <= a3;
var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4a3 = a3 >= b3;
@@ -233,6 +237,7 @@ var r4b3 = b3 >= a3;
var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5a3 = a3 == b3;
@@ -245,6 +250,7 @@ var r5b3 = b3 == a3;
var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6a3 = a3 != b3;
@@ -257,6 +263,7 @@ var r6b3 = b3 != a3;
var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7a3 = a3 === b3;
@@ -269,6 +276,7 @@ var r7b3 = b3 === a3;
var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8a3 = a3 !== b3;
@@ -185,6 +185,7 @@ var a5;
var b5;
var a6;
var b6;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1a3 = a3 < b3;
@@ -197,6 +198,7 @@ var r1b3 = b3 < a3;
var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2a3 = a3 > b3;
@@ -209,6 +211,7 @@ var r2b3 = b3 > a3;
var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3a3 = a3 <= b3;
@@ -221,6 +224,7 @@ var r3b3 = b3 <= a3;
var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4a3 = a3 >= b3;
@@ -233,6 +237,7 @@ var r4b3 = b3 >= a3;
var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5a3 = a3 == b3;
@@ -245,6 +250,7 @@ var r5b3 = b3 == a3;
var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6a3 = a3 != b3;
@@ -257,6 +263,7 @@ var r6b3 = b3 != a3;
var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7a3 = a3 === b3;
@@ -269,6 +276,7 @@ var r7b3 = b3 === a3;
var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8a3 = a3 !== b3;
@@ -45,19 +45,27 @@ var rh2 = b !== a;
//// [comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.js]
var a;
var b;
// operator <
var ra1 = a < b;
var ra2 = b < a;
// operator >
var rb1 = a > b;
var rb2 = b > a;
// operator <=
var rc1 = a <= b;
var rc2 = b <= a;
// operator >=
var rd1 = a >= b;
var rd2 = b >= a;
// operator ==
var re1 = a == b;
var re2 = b == a;
// operator !=
var rf1 = a != b;
var rf2 = b != a;
// operator ===
var rg1 = a === b;
var rg2 = b === a;
// operator !==
var rh1 = a !== b;
var rh2 = b !== a;
@@ -101,34 +101,42 @@ var a1;
var b1;
var a2;
var b2;
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
var r1b1 = b1 < a1;
var r1b2 = b2 < a2;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
var r2b1 = b1 > a1;
var r2b2 = b2 > a2;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
var r3b1 = b1 <= a1;
var r3b2 = b2 <= a2;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
var r4b1 = b1 >= a1;
var r4b2 = b2 >= a2;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
var r5b1 = b1 == a1;
var r5b2 = b2 == a2;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
var r6b1 = b1 != a1;
var r6b2 = b2 != a2;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
var r7b1 = b1 === a1;
var r7b2 = b2 === a2;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
var r8b1 = b1 !== a1;

Some files were not shown because too many files have changed in this diff Show More