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