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