Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d19a200
Added types, scan, parse, and check for async functions
rbuckton May 6, 2015
e82e841
Added emit for async functions in ES6
rbuckton May 7, 2015
80edb2d
Bug fixes and baselines
rbuckton May 7, 2015
1718ff2
Merge branch 'master' into asyncFunctions
rbuckton May 8, 2015
bca21ec
Updated baselines
rbuckton May 8, 2015
655f2ec
Cleanup and PR feedback
rbuckton May 8, 2015
2391666
Updated declaration and symbol baselines
rbuckton May 9, 2015
39a6cce
Cleaned up diagnostic messages
rbuckton May 9, 2015
daa7793
Additional clean up of diagnostic messages
rbuckton May 9, 2015
2ee5beb
PR feedback
rbuckton May 9, 2015
3d0991d
Better name for bitmask in ParserContextFlags
rbuckton May 13, 2015
9a6d308
Simplified parenthesis check for await as yield.
rbuckton May 13, 2015
117b07b
Added comments for emitAsyncSignatureAndBodyForES6
rbuckton May 13, 2015
e5df2e2
Merge branch 'asyncFunctions' of https://github.com/Microsoft/TypeScr…
rbuckton May 13, 2015
5e2d48c
Merge branch 'master' into asyncFunctions
rbuckton May 13, 2015
379704f
Cleaned up checker, added comments to parser based on PR feedback.
rbuckton May 13, 2015
b70e6a1
Added parseModifiersForArrowFunction
rbuckton May 13, 2015
890a5d8
Fixed missing call to nextToken()
rbuckton May 13, 2015
a565a02
Fixes missing check in isParenthesizedArrowFunctionExpressionWorker
rbuckton May 14, 2015
a2c5073
Some cleanup and additional comments following PR feedback
rbuckton May 19, 2015
b5df4b1
Merge branch 'master' into asyncFunctions
rbuckton May 21, 2015
9560d6f
Merge branch 'master' into asyncFunctions
rbuckton Jun 4, 2015
72a6865
Updated emit to align with current proposal for ES7 async functions
rbuckton Jun 4, 2015
02557b1
Emit awaiter arguments on new line
weswigham Jun 9, 2015
371583b
Update baselines for emit change
weswigham Jun 10, 2015
6fc07e6
Merged branch 'master' into asyncFunctions
rbuckton Jun 10, 2015
c259d7e
Merge pull request #3455 from weswigham/asyncFunctions
rbuckton Jun 10, 2015
5ebad58
Merge branch 'master' into asyncFunctions
rbuckton Jun 15, 2015
9a57e6f
Updated baselines
rbuckton Jun 15, 2015
f1c99f3
Remove generatorParameter and asyncParameter contexts.
CyrusNajmabadi Jun 16, 2015
009c3ee
Merge branch 'master' into removeGeneratorParameter
CyrusNajmabadi Jun 16, 2015
2e16680
Re-number enum.
CyrusNajmabadi Jun 16, 2015
1b93265
Merge pull request #3526 from Microsoft/removeGeneratorParameter
CyrusNajmabadi Jun 16, 2015
b25d855
Removed unused getContainingParameter function
rbuckton Jun 17, 2015
82eae19
Inlined checks for NodeFlags.Async in parser
rbuckton Jun 17, 2015
c74bb84
Moved getContainingFunction call in checkIdentifier
rbuckton Jun 17, 2015
b00a957
Removed unneeded capture for lexical this
rbuckton Jun 17, 2015
02f6622
Changed createPromiseType to return emptyObjectType
rbuckton Jun 17, 2015
7443ecc
Cleaned up diagnostics
rbuckton Jun 17, 2015
2891a1d
Cleaned up async return type check
rbuckton Jun 18, 2015
c4876d5
Add support for awaiting union types with mixed promise and non-promi…
rbuckton Jun 18, 2015
379d74a
Minor function rename
rbuckton Jun 18, 2015
eb03ae8
Added shortcut in checkAwaitedType for isolatedModules
rbuckton Jun 18, 2015
5b32903
Fix async function emit for lexical arguments
rbuckton Jun 19, 2015
76c0d32
Moved async functions for ES6 behind experimental flag
rbuckton Jun 20, 2015
4b4a96b
Merge branch 'master' into asyncFunctions
rbuckton Jul 1, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Inlined checks for NodeFlags.Async in parser
  • Loading branch information
rbuckton committed Jun 17, 2015
commit 82eae194f1ea6aa4a7c85fd96d0cf98e898418a8
12 changes: 7 additions & 5 deletions src/compiler/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2695,13 +2695,15 @@ namespace ts {
// Didn't appear to actually be a parenthesized arrow function. Just bail out.
return undefined;
}

let isAsync = !!(arrowFunction.flags & NodeFlags.Async);

// If we have an arrow, then try to parse the body. Even if not, try to parse if we
// have an opening brace, just in case we're in an error state.
var lastToken = token;
arrowFunction.equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken, /*reportAtCurrentPosition*/false, Diagnostics._0_expected, "=>");
arrowFunction.body = (lastToken === SyntaxKind.EqualsGreaterThanToken || lastToken === SyntaxKind.OpenBraceToken)
? parseArrowFunctionExpressionBody(/*isAsync*/ isAsyncFunctionLike(arrowFunction))
? parseArrowFunctionExpressionBody(isAsync)
: parseIdentifier();

return finishNode(arrowFunction);
Expand Down Expand Up @@ -2813,7 +2815,7 @@ namespace ts {
function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity: boolean): ArrowFunction {
let node = <ArrowFunction>createNode(SyntaxKind.ArrowFunction);
setModifiers(node, parseModifiersForArrowFunction());
let isAsync = isAsyncFunctionLike(node);
let isAsync = !!(node.flags & NodeFlags.Async);

// Arrow functions are never generators.
//
Expand Down Expand Up @@ -3493,7 +3495,7 @@ namespace ts {
node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken);

let isGenerator = !!node.asteriskToken;
let isAsync = isAsyncFunctionLike(node);
let isAsync = !!(node.flags & NodeFlags.Async);
node.name =
isGenerator && isAsync ? doInYieldAndAwaitContext(parseOptionalIdentifier) :
isGenerator ? doInYieldContext(parseOptionalIdentifier) :
Expand Down Expand Up @@ -4217,7 +4219,7 @@ namespace ts {
node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken);
node.name = node.flags & NodeFlags.Default ? parseOptionalIdentifier() : parseIdentifier();
let isGenerator = !!node.asteriskToken;
let isAsync = isAsyncFunctionLike(node);
let isAsync = !!(node.flags & NodeFlags.Async);
fillSignature(SyntaxKind.ColonToken, /*yieldContext*/ isGenerator, /*awaitContext*/ isAsync, /*requireCompleteParameterList*/ false, node);
node.body = parseFunctionBlockOrSemicolon(isGenerator, isAsync, Diagnostics.or_expected);
return finishNode(node);
Expand All @@ -4241,7 +4243,7 @@ namespace ts {
method.name = name;
method.questionToken = questionToken;
let isGenerator = !!asteriskToken;
let isAsync = isAsyncFunctionLike(method);
let isAsync = !!(method.flags & NodeFlags.Async);
fillSignature(SyntaxKind.ColonToken, /*yieldContext*/ isGenerator, /*awaitContext*/ isAsync, /*requireCompleteParameterList*/ false, method);
method.body = parseFunctionBlockOrSemicolon(isGenerator, isAsync, diagnosticMessage);
return finishNode(method);
Expand Down