Commit Graph
527 Commits
Author SHA1 Message Date
Cyrus Najmabadi 30f9a5ca2a Do not pass context flags downward while parsing binding elements.
This prevents an unnecessary allocation, simplifies parsing code, and prevents
an issue where parsing depends on context flags not stored in the final tree.
This is an issue for incremental parsing that can lead to nodes being reused
inappropriately.
2014-12-15 21:41:02 -08:00
CyrusNajmabadi 126aaf949d Merge pull request #1465 from Microsoft/labeledStatement
Avoid lookahead when parsing a statement.
2014-12-12 13:45:06 -08:00
Cyrus Najmabadi 26badc686f Avoid lookahead when parsing a statement.
If a statement started with an identifier, then we'd normally lookahead to see if the next token
was a colon.  Lookahead is expensive (as it has to rescan tokens).  Instead, we do the same thing
we do for arrow-functions.  We just parse out the identifier, and afterwards we check if there is
a colon as the current token.  Now, no lookahead is required.
2014-12-12 13:32:54 -08:00
Cyrus Najmabadi 6ff58e3028 Don't emit error flags in the 262 baselines unless the node actually had an error.
This helps reduce clutter.
2014-12-12 12:41:59 -08:00
Cyrus Najmabadi 11dd1ca00f For 262 tests, emit a bit in the baseline stating if the node had an error or not. 2014-12-11 17:53:24 -08:00
Jason Freeman 7f097140c9 Merge branch 'release-1.4' 2014-12-11 17:29:03 -08:00
Jason Freeman 06d7ef14cf Don't quote the word 'generators' in error messages 2014-12-11 17:22:22 -08:00
Jason Freeman d385f2ebf4 Disable computed properties in TypeScript 1.4 2014-12-11 16:49:53 -08:00
Daniel Rosenwasser d92d6379bd Merge branch 'release-1.4' into mergeFor1.4ToMaster
Conflicts:
	src/compiler/parser.ts
	src/compiler/utilities.ts
	src/harness/harness.ts
	tests/baselines/reference/APISample_node_compile.js
	tests/baselines/reference/APISample_node_compile.types
	tests/baselines/reference/APISample_standalone_compile.js
	tests/baselines/reference/APISample_standalone_compile.types
	tests/cases/compiler/APISample_node_compile.ts
	tests/cases/compiler/APISample_standalone_compile.ts
2014-12-11 14:49:43 -08:00
Daniel Rosenwasser 987dd0cede Fixed 'use strict' check. 2014-12-11 14:21:39 -08:00
Daniel Rosenwasser 94cce178dd Responded to CR feedback.
Conflicts:
	src/compiler/parser.ts
2014-12-11 14:21:18 -08:00
Daniel Rosenwasser 036209a89e Moved createCompilerHost into parser.ts
Conflicts:
	src/compiler/tsc.ts
2014-12-11 14:11:01 -08:00
Daniel Rosenwasser 0ce3861602 Moved non-exposed functions to utilities; fix up emitted .d.ts in Jakefile.
Conflicts:
	src/compiler/parser.ts
2014-12-11 14:00:36 -08:00
Daniel Rosenwasser 0aca3b9667 Fixed 'use strict' check. 2014-12-10 18:17:59 -08:00
Daniel Rosenwasser b6e8dd49e4 Responded to CR feedback. 2014-12-10 17:34:17 -08:00
Daniel Rosenwasser 905d978883 Moved createCompilerHost into parser.ts 2014-12-10 17:13:39 -08:00
Daniel Rosenwasser 7c6d731b62 Moved non-exposed functions to utilities; fix up emitted .d.ts in Jakefile. 2014-12-10 16:42:41 -08:00
Cyrus Najmabadi 1170a1c436 Only set parents for parse trees in the LS for the syntactic trees.
we don't need this for the semantic trees because the compiler will set them all during
the binding.
2014-12-10 10:09:40 -08:00
Cyrus Najmabadi 6170c56af4 Remove 'isOpen' and 'version' from teh compiler's SourceFile type.
Also, provide a way for creators of a source file to specify if they
want parent nodes hooked up.
2014-12-09 16:08:01 -08:00
Anders Hejlsberg 7bc35b3ae0 Merge branch 'master' into destructuring
Conflicts:
	src/compiler/binder.ts
	src/compiler/checker.ts
	src/compiler/emitter.ts
	src/compiler/parser.ts
	src/services/services.ts
	tests/baselines/reference/parserCommaInTypeMemberList2.errors.txt
2014-12-09 11:26:43 -08:00
Cyrus Najmabadi edc60ed808 Fix invariant issues. 2014-12-08 23:46:30 -08:00
Cyrus Najmabadi 89cd1e28f2 Remove unused type. 2014-12-08 18:58:13 -08:00
Cyrus Najmabadi afc57777f3 Put the actual parsing logic at the top of createSourceFile instead of the bottom.
This makes it vastly simpler to fix up that logic since you no longer have to go find
the end of the function first.
2014-12-08 18:36:25 -08:00
CyrusNajmabadi 96a8f22385 Merge pull request #1408 from Microsoft/methods
Remove the 'Method' syntaxkind and introduce MethodSignature and MethodDeclaration instead.
2014-12-08 18:13:42 -08:00
Cyrus Najmabadi cc83925f32 Also split out .PropertyDeclaration and .PropertySignature from .Property. 2014-12-08 16:37:35 -08:00
Yui T aee0b9e8a1 Merge branch 'master' into fixSpeculativeParse
Conflicts:
	tests/baselines/reference/parserCommaInTypeMemberList2.errors.txt
2014-12-08 16:35:51 -08:00
Cyrus Najmabadi c1b19d761d Remove the 'Method' syntaxkind and introduce MethodSignature and MethodDeclaration instead.
Sharing a single kind here would be bad for incremental scenarios as these two node types
are not interchangeable.

For now, i have updated nearly all code to look for both kinds.  However, it may not make sense
in all locations, and we could likely tighten up many code locations to only have to deal with
one or the other.
2014-12-08 16:16:11 -08:00
Cyrus Najmabadi 5db51fead8 Better error recovery when encountering an errant comma in a semicolon delimited list. 2014-12-08 15:35:09 -08:00
Yui T e9beba783e Fix speculative parsing by terminating the list when encounting illegal token 2014-12-08 15:02:45 -08:00
Anders Hejlsberg 459dee0e84 Merge branch 'master' into destructuring
Move downlevel vs. ES6 emit branching into individual emit functions
2014-12-08 14:42:38 -08:00
Anders Hejlsberg 05c9966180 Addressing CR feedback:
New SyntaxKind.BindingElement
Introduced new VariableLikeDeclaration and BindingElement types
Cleaned up VariableDeclaration, ParameterDeclaration, PropertyDeclaration types
Node kind of binding element is always SyntaxKind.BindingElement
Changed CheckVariableDeclaration to CheckVariableLikeDeclaration
Reorganized CheckVariableLikeDeclaration
2014-12-06 13:53:06 -08:00
CyrusNajmabadi 308d8e5d1e Merge pull request #1372 from Microsoft/forEach
ForEach cleanup
2014-12-04 18:55:19 -08:00
Anders Hejlsberg b49e2772ea Addressing CR feedback 2014-12-04 17:43:15 -08:00
Sheetal Nandi e29aadb4c4 "let" should only be considered a keyword in strict mode, or when it starts an actual construct
Handles #1301
2014-12-04 16:45:09 -08:00
CyrusNajmabadi f99bc15783 Merge pull request #1369 from Microsoft/parserErrors2
Track if the parser encountered any errors as a bit in the next node that is produced.
2014-12-04 13:37:50 -08:00
Cyrus Najmabadi 7e6f1ab01d Don't return the last falsy element in forEachChild. 2014-12-04 13:06:03 -08:00
Daniel Rosenwasser 6a882e7392 Merge pull request #1363 from Microsoft/noMoreExpandoBar
Fixed issue where missing identifiers pushed trivia into the navigation bar
2014-12-04 12:44:58 -08:00
Cyrus Najmabadi 15e6b64ff6 Merge branch 'master' into parserErrors2 2014-12-04 12:43:19 -08:00
CyrusNajmabadi 51804ee91e Merge pull request #1367 from Microsoft/tokenRanges
Simplify scanner by removing need for a 'onComment' callback.
2014-12-04 12:42:57 -08:00
Cyrus Najmabadi 1285c46b5a Merge branch 'master' into parserErrors2
Conflicts:
	src/compiler/parser.ts
2014-12-04 12:40:23 -08:00
Cyrus Najmabadi 405508c100 CR feedback. 2014-12-04 12:32:16 -08:00
Cyrus Najmabadi 8756142e25 Provide utility function to report back if a node contained a parse error anywhere inside of it. 2014-12-04 10:36:18 -08:00
Cyrus Najmabadi 1976f0de2e Track if the parser encountered any errors as a bit in the next node that is produced. 2014-12-04 10:19:57 -08:00
Cyrus Najmabadi 6a3222ca30 Inline method. 2014-12-04 10:07:44 -08:00
Cyrus Najmabadi 8c0fdbcff0 Add invariant assert in the parser. 2014-12-04 09:49:52 -08:00
Cyrus Najmabadi 5bd57be947 Fix comment. 2014-12-04 09:19:24 -08:00
Cyrus Najmabadi 589e6274f8 Remove function expression allocation when speculatively parsing or looking ahead.
Also, remove unnecessary grammar check now that the previous hack to insert a
missing type argument node has been removed.
2014-12-04 09:09:01 -08:00
Cyrus Najmabadi d796bf1e0a Improve the flexibility of speculative parsing.
We now no longer fail a speculative parse just because an error was encountered at any point while
speculating.  instead, we allow the speculative function that is being called to determine if the
parse was successful or not.  Only if it decides it was not successful is parsing rewound.

This improves our error recovery in several cases (esp. around arrow functions).  it will also
help in a followup refactoring to prevent lookahead/speculative parsing from causing lambda
allocations.
2014-12-04 08:53:45 -08:00
Cyrus Najmabadi 2510a5f907 Simplify scanner by removing need for a 'onComment' callback. 2014-12-04 06:40:36 -08:00
Anders Hejlsberg 816abb19e4 Merge branch 'master' into destructuring
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/emitter.ts
	src/compiler/parser.ts
	src/compiler/types.ts
	src/services/navigationBar.ts
	tests/baselines/reference/assignmentLHSIsValue.errors.txt
	tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt
	tests/baselines/reference/parserErrorRecovery_ParameterList2.errors.txt
2014-12-03 16:43:01 -08:00