Commit graph

741 commits

Author SHA1 Message Date
Cyrus Najmabadi fe57f3d2e4 Support modifiers on object literal methods and accessors, and question tokens on object literal methods.
This makes parsing of these constructs the same whether they are in an object literal or a class.

This is important for incrementla parsing for knowing if we can reuse these nodes if we run
into them.
2014-12-10 22:30:40 -08:00
Cyrus Najmabadi fc27f72324 Understand and handle modifiers on function declarations and variable statements within blocks.
This ensures reusability for functions/variables that may have been outside a block, but end up
inside one afterwards.  It also ensure the same tree is produced when incremental parsing.

i.e.  if you have:

declare function F() { }

And you add a { above it, then we current have an incremental parsing bug.  Namely we would see
a FunctionDeclaration node and say 'yes, we can reuse that node while parsing the block'.  This
is currently broken because the normal parse would not have normally accepted such a node (because
of the modifiers).

This was an example of contextual parsing of the same kind of node.  Something which we do not
want to do if we want incremental parsing to work properly.
2014-12-10 18:52:56 -08:00
Daniel Rosenwasser 9ad6eb21ed Merge pull request #1341 from Microsoft/escapingTheTemplateOfDoom
Template string escaping fixes
2014-12-10 16:29:00 -08:00
Anders Hejlsberg 2876ba6a6c Addressing CR feedback 2014-12-10 14:25:02 -08:00
Anders Hejlsberg 37b5c74b93 Adding test case 2014-12-10 10:17:48 -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
Mohamed Hegazy 9d31d356b4 Merge pull request #1400 from Microsoft/addMethodToBoolean
Add new method on interface Boolean to ensure it is not assignable from other types
2014-12-08 17:09:27 -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
Yui T c1d509a940 Update and add test cases 2014-12-08 15:47:24 -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
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
Mohamed Hegazy 80c5acc04e Add new method on interface Boolean to ensure it is not assignable from other types 2014-12-08 11:22:52 -08:00
Vladimir Matveev b9bda98256 fetch actual parameter name of indexer when printing literal type 2014-12-05 16:58:49 -08:00
Anders Hejlsberg 4118ffc703 Accepting new baselines 2014-12-04 17:43:51 -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
Sheetal Nandi a4ab192b6f Fix the merge conflicts 2014-12-04 13:38:51 -08:00
CyrusNajmabadi 4d0f9920e9 Merge pull request #1364 from Microsoft/coverage
Add grammar walker test coverage cases.
2014-12-04 13:01:42 -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 4db419d93c more baselines. revert unintentional change to harness.ts. 2014-12-03 22:14:55 -08:00
Cyrus Najmabadi e6d1e39fb7 Add more coverage tests. 2014-12-03 21:07:50 -08:00
Cyrus Najmabadi 66c1b3df20 Add grammar walker test coverage cases. 2014-12-03 20:41:39 -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
Cyrus Najmabadi 3440869010 Print out methods in the types of object literals as if they were methods, not function typed properties. 2014-12-03 03:19:46 -08:00
Cyrus Najmabadi d5ef6226da Emit FunctionPropertyAssignments in their native form when emitting in ES6 mode. 2014-12-03 02:09:15 -08:00
Cyrus Najmabadi 44f30c8ba9 Remove baseline-hacks from the typewriter. 2014-12-03 01:55:22 -08:00
Cyrus Najmabadi 0900005438 Don't rewrite function property assignments in the AST. 2014-12-03 01:46:04 -08:00
Cyrus Najmabadi f520129e2c Simplify arrow function expression parsing.
Reduce allocations by avoiding the need for a superfluous 'ParsedSignature'.
2014-12-02 19:04:51 -08:00
Anders Hejlsberg 65d1510769 Adding rudimentary tests 2014-12-02 16:23:37 -08:00
Cyrus Najmabadi 5a7500ca5e Add a dedicated 'EndOfFile' token to a SourceFile.
This is important for incremental parsing, as it is where we can attach parse errors at the end of
the file to.  Also, it helps with things like emitting comments at the end of the file.
2014-12-02 16:09:41 -08:00
Cyrus Najmabadi ec17f369a2 Find imported external modules that start with double underscores. 2014-12-02 14:14:57 -08:00
Cyrus Najmabadi a6a7e81de2 Add failing test. 2014-12-02 14:05:35 -08:00
Daniel Rosenwasser 4c4e5a43e0 Added multiline tests. 2014-12-02 13:54:10 -08:00
Mohamed Hegazy cf1f6406bb Merge pull request #1332 from Microsoft/getEmitOutputCleanup
Ensure getEmitOutput only check the file requested
2014-12-02 13:21:13 -08:00
Anders Hejlsberg ab35da9b87 Baseline changes from updating rest parameter emit to use new temporary names 2014-12-02 11:49:28 -08:00
Sheetal Nandi 8b078c2734 baseline change conflict not caught during github merge 2014-12-02 08:46:33 -08:00
Sheetal Nandi 802f11349f Merge pull request #1056 from Microsoft/unionTypeConformance
Union type conformance
2014-12-02 08:02:34 -08:00
Cyrus Najmabadi 03a2d0197b Make 'CatchClause' have-a block, instead of be-a block. 2014-12-01 23:21:27 -08:00
Mohamed Hegazy 08165c0b17 Ensure getEmitOutput only check the file requested 2014-12-01 23:15:13 -08:00
Cyrus Najmabadi db89584a86 Put semantically relevant tokens in the tree. 2014-12-01 22:03:41 -08:00
Cyrus Najmabadi f8f314868b Merge branch 'master' into lessDirectCallsToError
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
2014-12-01 17:42:59 -08:00
Daniel Rosenwasser ddb3ca0f48 Augment escapeString to fix downlevel template literal emit. 2014-12-01 17:27:11 -08:00
Mohamed Hegazy 4e79458e69 Merge branch 'master' into es6typings
Conflicts:
	tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types
2014-12-01 16:51:10 -08:00
Mohamed Hegazy 203e46c335 Merge pull request #1317 from vvakame/addMissingPrototypeProperty
Add missing prototype properties
2014-12-01 16:38:37 -08:00
Cyrus Najmabadi d730e5ca55 Remove 'missing' syntax kind. 2014-12-01 16:17:04 -08:00
Mohamed Hegazy 170014c3da Merge pull request #1312 from Microsoft/isDeclarationVisibleAssert
Handle assert for missing node kind in isDeclarationVisible for functionType and constructorType
2014-12-01 14:30:25 -08:00
Mohamed Hegazy 199b71c2ce Merge branch 'master' into es6Typings 2014-12-01 13:22:20 -08:00
Mohamed Hegazy 0f6574e7e6 Add test for getters and setters 2014-12-01 13:20:56 -08:00
Mohamed Hegazy da588aa4bc Merge branch 'master' into isDeclarationVisibleAssert
Conflicts:
	src/compiler/checker.ts
2014-12-01 13:19:12 -08:00
Daniel Rosenwasser 9da7287eaa Merge pull request #1275 from Microsoft/unterminator
Keep track of unterminated literal expressions.
2014-12-01 12:57:33 -08:00
Yui T 7ec49fd80e Merge branch 'master' into binaryIntegerLiteral
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/emitter.ts
	tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt
2014-12-01 11:22:37 -08:00