mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Emit comments in the javascript code if --removecomments is not specified
This commit is contained in:
+50
-3
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
+8
@@ -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
Reference in New Issue
Block a user