Skip to content

Commit 734f161

Browse files
committed
Changed emit for decorator metadata
1 parent 6ba1961 commit 734f161

4 files changed

Lines changed: 16 additions & 13 deletions

File tree

Jakefile.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -695,7 +695,6 @@ function runTestsAndWriteOutput(file) {
695695
cleanTestDirs();
696696
var tests = process.env.test || process.env.tests || process.env.t;
697697
var light = process.env.light || false;
698-
var beep = process.env.beep;
699698
var testConfigFile = 'test.config';
700699
if (fs.existsSync(testConfigFile)) {
701700
fs.unlinkSync(testConfigFile);
@@ -796,8 +795,6 @@ function runTestsAndWriteOutput(file) {
796795
console.log(comments.join(os.EOL));
797796
deleteTemporaryProjectOutput();
798797
complete();
799-
800-
if (beep) process.stdout.write("\u0007");
801798
});
802799
ex.addListener("error", function (e, status) {
803800
if (progress.visible) {
@@ -816,7 +813,6 @@ function runTestsAndWriteOutput(file) {
816813
}
817814

818815
deleteTemporaryProjectOutput();
819-
if (beep) process.stdout.write("\u0007");
820816
fail("Process exited with code " + status);
821817
});
822818
ex.run();
@@ -827,13 +823,14 @@ function runConsoleTests(defaultReporter, defaultSubsets) {
827823
var debug = process.env.debug || process.env.d;
828824
tests = process.env.test || process.env.tests || process.env.t;
829825
var light = process.env.light || false;
826+
var stackTraceLimit = process.env.stackTraceLimit || 1;
830827
var testConfigFile = 'test.config';
831828
if(fs.existsSync(testConfigFile)) {
832829
fs.unlinkSync(testConfigFile);
833830
}
834831

835832
if (tests || light) {
836-
writeTestConfigFile(testConfigFile, tests, light);
833+
writeTestConfigFile(testConfigFile, tests, light, stackTraceLimit);
837834
}
838835

839836
if (tests && tests.toLocaleLowerCase() === "rwc") {

src/compiler/factory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ namespace ts {
791791

792792
export function createDecorateHelper(decoratorExpressions: Expression[], target: Expression, memberName?: Expression, descriptor?: Expression) {
793793
const argumentsArray: Expression[] = [];
794-
argumentsArray.push(createArrayLiteral(decoratorExpressions));
794+
argumentsArray.push(createArrayLiteral(decoratorExpressions, /*location*/ undefined, /*multiLine*/ true));
795795
argumentsArray.push(target);
796796
if (memberName) {
797797
argumentsArray.push(memberName);

src/compiler/transformers/module/module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ namespace ts {
674674
}
675675
}
676676
else {
677-
const declaration = resolver.getReferencedImportDeclaration(original);
677+
const declaration = resolver.getReferencedImportDeclaration(node.parent ? node : original);
678678
if (declaration) {
679679
if (declaration.kind === SyntaxKind.ImportClause) {
680680
if (languageVersion >= ScriptTarget.ES5) {

src/compiler/transformers/ts.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ namespace ts {
8383
*/
8484
function transformSourceFile(node: SourceFile) {
8585
currentSourceFile = node;
86+
currentScope = node;
8687
const visited = visitEachChild(node, visitor, context);
8788
setNodeEmitFlags(visited, NodeEmitFlags.EmitEmitHelpers | getNodeEmitFlags(node));
8889
return visited;
@@ -1355,14 +1356,18 @@ namespace ts {
13551356
*/
13561357
function addTypeMetadata(node: Declaration, decoratorExpressions: Expression[]) {
13571358
if (compilerOptions.emitDecoratorMetadata) {
1359+
let properties: ObjectLiteralElement[];
13581360
if (shouldAddTypeMetadata(node)) {
1359-
decoratorExpressions.push(createMetadataHelper("design:type", serializeTypeOfNode(node), /*defer*/ true));
1361+
(properties || (properties = [])).push(createPropertyAssignment("type", createArrowFunction([], serializeTypeOfNode(node))));
13601362
}
13611363
if (shouldAddParamTypesMetadata(node)) {
1362-
decoratorExpressions.push(createMetadataHelper("design:paramtypes", serializeParameterTypesOfNode(node), /*defer*/ true));
1364+
(properties || (properties = [])).push(createPropertyAssignment("paramTypes", createArrowFunction([], serializeParameterTypesOfNode(node))));
13631365
}
13641366
if (shouldAddReturnTypeMetadata(node)) {
1365-
decoratorExpressions.push(createMetadataHelper("design:returntype", serializeReturnTypeOfNode(node), /*defer*/ true));
1367+
(properties || (properties = [])).push(createPropertyAssignment("returnType", createArrowFunction([], serializeReturnTypeOfNode(node))));
1368+
}
1369+
if (properties) {
1370+
decoratorExpressions.push(createMetadataHelper("design:typeinfo", createObjectLiteral(properties, /*location*/ undefined, /*multiLine*/ true), /*defer*/ false));
13661371
}
13671372
}
13681373
}
@@ -1483,11 +1488,11 @@ namespace ts {
14831488
* @param node The node that should have its return type serialized.
14841489
*/
14851490
function serializeReturnTypeOfNode(node: Node): Expression {
1486-
if (isFunctionLike(node)) {
1491+
if (isFunctionLike(node) && node.type) {
14871492
return serializeTypeNode(node.type);
14881493
}
14891494

1490-
return undefined;
1495+
return createVoidZero();
14911496
}
14921497

14931498
/**
@@ -1533,7 +1538,7 @@ namespace ts {
15331538
return createIdentifier("Boolean");
15341539

15351540
case SyntaxKind.StringKeyword:
1536-
case SyntaxKind.StringLiteral:
1541+
case SyntaxKind.StringLiteralType:
15371542
return createIdentifier("String");
15381543

15391544
case SyntaxKind.NumberKeyword:
@@ -1552,6 +1557,7 @@ namespace ts {
15521557
case SyntaxKind.UnionType:
15531558
case SyntaxKind.IntersectionType:
15541559
case SyntaxKind.AnyKeyword:
1560+
case SyntaxKind.ThisType:
15551561
break;
15561562

15571563
default:

0 commit comments

Comments
 (0)