Commit graph

707 commits

Author SHA1 Message Date
Cyrus Najmabadi
fc229368d1 Include the binary expression's operator in the AST. 2015-02-20 18:56:42 -08:00
Daniel Rosenwasser
4138fed1d7 Fixed case where property should not be emitted. 2015-02-20 18:42:07 -08:00
Daniel Rosenwasser
bebdd73e13 Extracted out RHS patching property logic to function. 2015-02-20 18:16:52 -08:00
Daniel Rosenwasser
88c61e89a8 Addressed CR comments. 2015-02-20 18:02:14 -08:00
Cyrus Najmabadi
eb5936b06f Merge branch 'master' into baseZero
Conflicts:
	src/harness/harnessLanguageService.ts
2015-02-20 16:56:58 -08:00
Daniel Rosenwasser
93c6ac0916 This is why we need an IO type constructor. 2015-02-20 16:54:07 -08:00
Daniel Rosenwasser
ec678f3ebd Merge branch 'master' into thanksLua
Conflicts:
	src/compiler/emitter.ts
	tests/baselines/reference/computedPropertyNames12_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames14_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames15_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames17_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames32_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames35_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames3_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames42_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames5_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames6_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames8_ES5.errors.txt
	tests/baselines/reference/computedPropertyNames9_ES5.errors.txt
	tests/baselines/reference/computedPropertyNamesDeclarationEmit3_ES5.errors.txt
	tests/baselines/reference/computedPropertyNamesDeclarationEmit4_ES5.errors.txt
	tests/baselines/reference/computedPropertyNamesOnOverloads_ES5.errors.txt
2015-02-20 16:44:20 -08:00
Daniel Rosenwasser
78425d6e0f Removed unused text-concatenating emit. 2015-02-20 14:17:26 -08:00
Daniel Rosenwasser
51129a704d Rewrite the tree instead of hacking text together for downlevel object literals with computed properties. 2015-02-20 14:16:09 -08:00
Daniel Rosenwasser
0fd783f3ef Don't emit accessors multiple times. 2015-02-19 17:04:32 -08:00
Daniel Rosenwasser
ce85b14589 Made the initial object literal properties indented. 2015-02-19 13:11:59 -08:00
Jason Freeman
5596993351 Merge branch 'master' into forOf
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	tests/baselines/reference/APISample_compile.js
	tests/baselines/reference/APISample_compile.types
	tests/baselines/reference/APISample_linter.js
	tests/baselines/reference/APISample_linter.types
	tests/baselines/reference/APISample_transform.js
	tests/baselines/reference/APISample_transform.types
	tests/baselines/reference/APISample_watcher.js
	tests/baselines/reference/APISample_watcher.types
2015-02-18 14:49:10 -08:00
Daniel Rosenwasser
a6c5505881 Created a combined 'createAndRecordTempVariable' function. 2015-02-18 12:10:00 -08:00
Daniel Rosenwasser
826ed0545b Addressed CR feedback. 2015-02-18 12:01:24 -08:00
Vladimir Matveev
1dfd1b470e initial version of parsing 'for-of'
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
2015-02-18 11:30:00 -08:00
Daniel Rosenwasser
5fc2ec701b Merge branch 'master' into thanksLua
Conflicts:
	src/compiler/emitter.ts
	tests/baselines/reference/FunctionPropertyAssignments5_es6.js
	tests/baselines/reference/computedPropertyNames9_ES6.js
	tests/baselines/reference/computedPropertyNamesDeclarationEmit3.js
	tests/baselines/reference/computedPropertyNamesDeclarationEmit4.js
	tests/baselines/reference/parserES5ComputedPropertyName3.js
	tests/baselines/reference/parserES5ComputedPropertyName4.js
2015-02-17 17:43:06 -08:00
Vladimir Matveev
b4c82c9401 added tests, accepted baselines 2015-02-17 17:04:31 -08:00
Vladimir Matveev
e6cfc10acc added missing files 2015-02-17 16:26:32 -08:00
Sheetal Nandi
fc1528f3e5 Dts for export * from "mod" and export { a, b as c,...} [from "mod"] 2015-02-17 09:28:55 -08:00
Sheetal Nandi
5b6a9a8517 Merge branch 'es6Import' into es6ImportDts 2015-02-17 08:29:45 -08:00
Cyrus Najmabadi
cdc1b90e42 Fix function name. 2015-02-16 20:10:07 -08:00
Cyrus Najmabadi
124a77cc3a Remove 'ZeroBased' from all APIs, now that all APIs are zero based. 2015-02-16 19:35:45 -08:00
Cyrus Najmabadi
edbedc7d5d Make code more clearly state that it is one based. 2015-02-16 17:47:32 -08:00
Cyrus Najmabadi
1098e80f4b Remove one-based helper function. 2015-02-16 17:41:07 -08:00
Cyrus Najmabadi
8ef4df8acb Move the emitter over to using zero based indexing. 2015-02-16 17:34:11 -08:00
Cyrus Najmabadi
ab7d36d526 Move the emitter over to use zero based indexing. 2015-02-16 16:28:26 -08:00
Cyrus Najmabadi
b3366ec8b4 name more line/char functions more clearly. Use zero based indexing in breakpoints. 2015-02-16 16:18:53 -08:00
Cyrus Najmabadi
afb083ae5a Make method more clearly indicate that it is one based. 2015-02-16 15:39:49 -08:00
Cyrus Najmabadi
35b489d7d1 Rename our one-based methods to more clearly indicate that that's what base they use. 2015-02-16 15:20:05 -08:00
Vladimir Matveev
4aff9c357d explicitly initialize let binding in generated code to default value 2015-02-16 13:39:32 -08:00
Ivo Gabe de Wolff
eedcb090e4 Merge master into taggedTemplates 2015-02-16 19:26:27 +01:00
Anders Hejlsberg
a8152b6e50 Support for 'export *' declarations 2015-02-15 08:25:24 -08:00
Vladimir Matveev
ba52d60c7a try only names generated in current scope with testing if name is unique 2015-02-14 14:23:37 -08:00
Vladimir Matveev
a0bcd7eabf initial revision of downlevel compilation for let/const bindings 2015-02-14 00:48:46 -08:00
Anders Hejlsberg
6ef6217c16 Allow multiple (renaming) exports for same entity 2015-02-13 10:07:10 -08:00
Ivo Gabe de Wolff
f77bedd6f6 Emit parens for tag of tagged template if necessary 2015-02-13 18:34:32 +01:00
Anders Hejlsberg
79be0a7d26 Support for ES6 export declarations (except export default and export *) 2015-02-12 18:05:02 -08:00
Sheetal Nandi
649cd3bce1 Declaration emit fixes for binding pattern in variable statements
Handles #2023
2015-02-12 13:23:49 -08:00
Jason Freeman
486cebd224 Merge branch 'master' of https://github.com/Microsoft/TypeScript into esSymbols 2015-02-12 11:03:35 -08:00
togru
d94cbed413 Merge remote-tracking branch 'upstream/master' 2015-02-11 10:12:22 +01:00
togru
091f38b3e0 improved equality checks in AMD module sorting function 2015-02-11 10:10:11 +01:00
Sheetal Nandi
0332feda6a Merge branch 'es6Import' into es6ImportDts 2015-02-10 19:09:00 -08:00
Sheetal Nandi
f8351c8865 Set the declarations of export assignment visible on demand through dts emit
Emit those new declarations asynchronously since they are otherwise not visible
2015-02-10 19:02:13 -08:00
Sheetal Nandi
863e73c75e Test case for emitting partial part of import syntax 2015-02-10 17:09:29 -08:00
Sheetal Nandi
e0323b4c2f Emit the import declaration in d.ts file only if it is visible 2015-02-10 17:02:11 -08:00
Jason Freeman
a94e61bfcd Merge branch 'master' of https://github.com/Microsoft/TypeScript into esSymbols
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
2015-02-10 16:20:32 -08:00
Anders Hejlsberg
e8cc2bf5f7 Merge branch 'master' into es6Import 2015-02-10 16:17:50 -08:00
Sheetal Nandi
05fcdf0e30 Declaration for default bindings of the import syntax 2015-02-10 15:39:24 -08:00
Sheetal Nandi
f2a28a5975 Declaration emit for NamedImport syntax 2015-02-10 15:16:38 -08:00
Anders Hejlsberg
3523233ae6 Rewrite named imports to reference properties on module instance 2015-02-10 14:59:20 -08:00
Sheetal Nandi
96139ca4d8 Enable declaration emit for import * as ns from "mod" syntax 2015-02-10 14:36:54 -08:00
Sheetal Nandi
6ac1bcca08 Enable declaration emit for import "mod" syntax 2015-02-10 13:43:05 -08:00
Anders Hejlsberg
4b92e42b62 Merge pull request #1931 from Microsoft/spreadCall
Support spread operator in call expressions
2015-02-10 09:24:53 -08:00
togru
8492dfdffd moved AMD module sorting to emitter, updated test case 2015-02-10 10:28:09 +01:00
Anders Hejlsberg
e47f64c510 Checking of ES6 import declarations 2015-02-08 17:33:45 -08:00
Anders Hejlsberg
69d47ef854 Formatting fixes 2015-02-08 12:15:44 -08:00
Anders Hejlsberg
c8cc19544e AMD emit for ES6 import declarations 2015-02-08 12:13:56 -08:00
Anders Hejlsberg
69bd05946a CommonJS emit for ES6 import declarations 2015-02-08 08:03:15 -08:00
Jason Freeman
35604426c8 Declaration emit for symbol properties 2015-02-06 21:32:54 -08:00
Jason Freeman
e508bf7e86 Add symbol keyword 2015-02-06 21:32:02 -08:00
Cyrus Najmabadi
f44144a77c Preserve newlines appropriately between elements of an object literal or array literal when emitting. 2015-02-06 20:16:35 -08:00
Cyrus Najmabadi
0fbbbffde6 Emit functions on a singline line if they were originally written on a single line. 2015-02-06 20:03:24 -08:00
Cyrus Najmabadi
11aa4d362b Provide specialized functions for emitting the body of a function depending on if that body is an expression or a block. 2015-02-06 19:53:52 -08:00
Cyrus Najmabadi
36b6f4e1b7 Preserve single line blocks when emitting. 2015-02-06 18:45:09 -08:00
Anders Hejlsberg
7bd14a7895 Merge branch 'master' into es6importcheck
Conflicts:
	src/compiler/checker.ts
2015-02-06 14:36:36 -08:00
Ivo Gabe de Wolff
04dd08da70 Resolve missed merge conflict 2015-02-06 16:45:26 +01:00
Ivo Gabe de Wolff
30c10fb7c4 Merge branch 'master' into taggedTemplates
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/emitter.ts
2015-02-06 16:44:16 +01:00
Anders Hejlsberg
0819ca897c Addressing CR feedback 2015-02-06 07:39:11 -08:00
Cyrus Najmabadi
5c0b38b203 Remove getEnumMemberValue, it is now subsumed into getConstantValue. 2015-02-05 18:26:56 -08:00
Cyrus Najmabadi
f9d3b489f2 Put curly on the right line. 2015-02-05 17:11:06 -08:00
Cyrus Najmabadi
66a363f449 Simplify the API for emitting and reporting exit statuses to callers. 2015-02-05 15:50:18 -08:00
Cyrus Najmabadi
e7f6693eda Move code for emitting above helper functions. 2015-02-05 14:46:50 -08:00
Cyrus Najmabadi
b0061c1420 Emit both javascript and declarations in the presence of errors (*unless* -noEmitOnError is specified). 2015-02-05 14:41:04 -08:00
Daniel Rosenwasser
c8691a189c Add newline before closing paren in multiline object literals. 2015-02-05 13:57:27 -08:00
togru
9974526101 updated code style, added tests, fixed regex bug, merged to latest branch 2015-02-05 12:07:00 +01:00
Cyrus Najmabadi
337a99f62a Change the API for getting diagnostics so that all calls go through a Program instance. 2015-02-05 01:47:29 -08:00
Daniel Rosenwasser
ddb63d286b Emit computed properties in ES3/ES5 properly. 2015-02-04 18:35:13 -08:00
Cyrus Najmabadi
476c8249ac Remove 'isEmitBlocked' from the program API.
If emitting is blocked, then calling .emit on the program will simply return
immediately with an appropriate reason given in the EmitResult.
2015-02-04 17:48:29 -08:00
Cyrus Najmabadi
bb307f8163 Simplify the API for emitting code from the Program instance. 2015-02-04 16:53:14 -08:00
Anders Hejlsberg
2494b2d90f Support spread operator in call expressions 2015-02-04 13:39:24 -08:00
Cyrus Najmabadi
95702a89a7 Fix spelling of 'Filename' to be 'FileName'. 2015-02-03 16:08:46 -08:00
CyrusNajmabadi
fab351e0b6 Merge pull request #1913 from Microsoft/internalDTS
Provide an experimental flag that allows us to emit declarations except for nodes marked with '@internal'.
2015-02-03 16:29:04 -05:00
Cyrus Najmabadi
838b9b6998 Provide an experimental flag that allows us to emit declarations except for nodes marked with '@internal'. 2015-02-03 13:15:28 -08:00
Cyrus Najmabadi
0ca03048cf Move the code to actually emit higher up in the function.
Now it it precedes all the other function declarations, and is much easier to debug.
2015-02-03 12:46:01 -08:00
Vladimir Matveev
288e38fa36 merge with master 2015-02-03 11:26:39 -08:00
CyrusNajmabadi
22ed101267 Merge pull request #1899 from Microsoft/earlyErrors2
Emit even in the presence of parse errors.
2015-02-02 20:24:06 -05:00
Mohamed Hegazy
6807bf86a5 Merge pull request #1855 from stanthomas/master
issue #1833 : const enum: supress value comment in emitted javascript
2015-02-02 16:35:11 -08:00
Cyrus Najmabadi
e63d795b1a Rename function. 2015-02-02 15:55:50 -08:00
Cyrus Najmabadi
350d768e8d Fix usage of tabs instead of spaces. 2015-02-02 15:50:16 -08:00
Cyrus Najmabadi
dd8d3535ff Remove the concept of early errors from the compiler.
Currently only parse errors prevent emitting (And this will be changed in the next
code review as well).
2015-02-02 15:14:19 -08:00
Yui T
416267172d Address code review 2015-01-30 17:48:07 -08:00
Yui T
5d0376fc78 Address codereview 2015-01-30 14:09:10 -08:00
Stan Thomas
95e7015fa0 Supress const enum member value comment from emitted javascript in presence of --removeComments (revised) 2015-01-30 06:09:31 -05:00
Yui T
fb2c5020a3 Clean up the checking of position 2015-01-29 16:38:05 -08:00
Yui T
fd20695957 Remove flag and compare position 2015-01-29 16:07:55 -08:00
Yui T
e4b206c4a2 Merge branch 'master' into emitArrowFunctionES6 2015-01-29 15:37:45 -08:00
Stan Thomas
17763ab040 Supress const enum member value comment from emitted javascript in presence of --removeComments 2015-01-29 17:26:53 -05:00
Yui T
2b200d4727 Address code review 2015-01-28 17:34:38 -08:00
Yui T
8d731d400c Address code review 2015-01-28 16:48:53 -08:00
Cyrus Najmabadi
3c5ff5310f CR feedback
.
2015-01-27 17:16:28 -08:00
Cyrus Najmabadi
71de2de6ed Merge branch 'master' into emitCleanup 2015-01-27 17:10:33 -08:00
Cyrus Najmabadi
34b342ac97 Fix method name. 2015-01-27 17:09:57 -08:00
Sheetal Nandi
e0581899fa Rename existing import declaration to ImportEqualsDeclaration 2015-01-27 14:42:20 -08:00
Yui T
15b05e632d Merge branch 'master' into emitArrowFunctionES6 2015-01-27 13:40:19 -08:00
Yui T
f219a2de25 Address code review; preserve users non-parenthesis 2015-01-26 19:00:38 -08:00
Ivo Gabe de Wolff
9fc0144163 Merge branch 'master' into taggedTemplates
Conflicts:
	src/compiler/checker.ts
	src/compiler/emitter.ts
2015-01-24 21:33:35 +01:00
Yui T
593a0992f9 Update emitter due to merge with master 2015-01-23 17:28:12 -08:00
Ivo Gabe de Wolff
39027d901a Rename emitParenthesized to emitParenthesizedIf 2015-01-23 15:46:32 +01:00
Ivo Gabe de Wolff
cbec9a3a3a Respond to CR 2015-01-23 15:44:21 +01:00
Jason Freeman
4a7aa7e929 Address CR feedback 2015-01-22 19:09:10 -08:00
Cyrus Najmabadi
a82289c8b4 Emit comments in a lot more places. 2015-01-22 15:58:00 -08:00
Cyrus Najmabadi
d2e96c1779 Simplify enum emit. 2015-01-22 14:45:55 -08:00
Vladimir Matveev
ad42afc4af resolve merge conflicts 2015-01-22 11:23:27 -08:00
Jason Freeman
b022ccd430 Merge branch 'master' into computedProperties
Conflicts:
	src/compiler/checker.ts
2015-01-21 11:03:24 -08:00
Jason Freeman
de5aa6c0d2 Fix source map scope name for computed properties 2015-01-21 11:01:05 -08:00
Yui T
581beb58dc Merge branch 'master' into emitArrowFunctionES6 2015-01-21 10:36:32 -08:00
Sheetal Nandi
e8e2356afa Fixes the emit of comment when comment ends on last line
This fixes regression from 5a7500ca5e with addition of eof token
Handles #1714
2015-01-20 21:16:14 -08:00
Jason Freeman
eb7798fbb2 Skip computed properties on declaration emit 2015-01-20 18:29:04 -08:00
Ivo Gabe de Wolff
434c908c36 Re-add debug assert & fix indent 2015-01-19 11:45:48 +01:00
Ivo Gabe de Wolff
161545de97 Change tagged template emit to new style 2015-01-19 11:33:43 +01:00
Vladimir Matveev
45ac06a0f2 move line map related function out of SourceFile 2015-01-16 12:02:12 -08:00
Anders Hejlsberg
bce15cb368 Fixing negated language version checks 2015-01-16 07:15:31 -08:00
Yui T
ba239c5812 Address code review 2015-01-15 17:12:44 -08:00
Anders Hejlsberg
65452aa011 Hardening compiler to accept empty CompilerOptions object 2015-01-15 15:57:08 -08:00
Ivo Gabe de Wolff
349841e2e3 Emit var in front of statement with tagged template 2015-01-09 21:22:42 +01:00
Daniel Rosenwasser
7b11621750 Merge pull request #1571 from Arnavion/1570-template-strings
Don't emit an empty template head literal if there's a template span with a non-empty literal.
2015-01-08 12:17:17 -08:00
Daniel Rosenwasser
df4b3d2d37 Merge pull request #1547 from Microsoft/moveEmitHost
Moved EmitHost to utilities.ts so that it can be edited alone, and to fix resulting declaration file
2015-01-07 13:13:49 -08:00
Daniel Rosenwasser
f32683d231 Merge pull request #1529 from Microsoft/uninstantiatedModulesBeforeClasses
Allow uninstantiated modules before clodules
2015-01-07 12:40:50 -08:00
Yui T
7d0fc62256 Emit this binding natively in es6 2015-01-07 11:54:12 -08:00
Yui T
b0ea40164c Emit Arrow function natively in ES6 2015-01-06 18:18:37 -08:00
Arnavion
b442d14e44 Don't emit an empty template head literal if there's a template span with a non-empty literal.
Fixes #1570
2015-01-06 15:28:06 -08:00
Arnavion
33534be268 Give MinusToken the same precedence as PlusToken for template expressions.
Fixes #1577
2015-01-06 02:42:02 -08:00
Ivo Gabe de Wolff
a13af6b482 Move code to separate functions 2015-01-05 21:22:12 +01:00
Ivo Gabe de Wolff
8f28c95b04 Emit parens when an argument is a comma operator
Example:
foo`A${ 1 }B${ 2, 3 }C`;
2015-01-05 20:30:38 +01:00
Ivo Gabe de Wolff
69d724f554 Fix tagged templates that consist of a single part
Example:
foo `bar` should compile to foo([“bar”])
2015-01-04 20:58:45 +01:00
Ivo Gabe de Wolff
c2d0bf82c4 Emit tagged templates when targeting ES3 or 5 2015-01-04 14:47:18 +01:00
Daniel Rosenwasser
d907f99693 Moved EmitHost to types.ts so that utilities can be edited as a standalone file through dependency resolution. 2014-12-22 13:58:14 -08:00
Daniel Rosenwasser
fac5201765 Only error on non-ambient instantiated modules preceding clodules. 2014-12-17 17:00:42 -08:00
Cyrus Najmabadi
b37b98138d Merge branch 'master' into layering
Conflicts:
	src/compiler/checker.ts
	src/compiler/utilities.ts
2014-12-17 15:35:30 -08:00
Cyrus Najmabadi
6a08c54f42 Merge branch 'master' into sourceFileUpdate
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/harness/fourslash.ts
2014-12-17 13:22:04 -08:00
Cyrus Najmabadi
7f893f9b9a Rename method to be clearer. 2014-12-16 18:50:34 -08:00
Anders Hejlsberg
fed3b5c0de Adding comment 2014-12-16 15:47:22 -08:00
Cyrus Najmabadi
94d576290e Don't expose EmitHost. it is only used by a non-exposed function. 2014-12-16 15:10:15 -08:00
Cyrus Najmabadi
5a2fb94a95 Clean things up so the services layer can easily emit without having to contort compiler hosts. 2014-12-16 14:42:58 -08:00
Cyrus Najmabadi
f5ad79fe7a Remove the dependency that TypeChecker and Emitter have on Program.
Instead, these layers explicitly specify the functionality they need, and don't take in anything extra.
2014-12-16 14:12:17 -08:00
Cyrus Najmabadi
b665323d45 Make the emitter no longer depend on the Program.
This breaks layering.  Also, it means the emitter depends on too large a surface area.
Now the emitter declares exactly what it needs, and only gets that.
2014-12-16 13:52:47 -08:00
Cyrus Najmabadi
4aa361d4bf Layer the compiler so that every layer only depends on hte layers below it.
The layering is now:

types
core
scanner
parser
binder
checker
emitter
program
2014-12-16 13:14:14 -08:00
Cyrus Najmabadi
0a8744e841 Add helper method to reduce so many double negatives in the code. 2014-12-16 03:19:13 -08:00
Cyrus Najmabadi
c7bb0a5ae6 Don't store variable statement flags on its variable declaration children. 2014-12-16 02:50:38 -08:00
Anders Hejlsberg
667e82fba2 Addressing CR feedback + Run fourslash tests with ES5 emit 2014-12-15 15:16:54 -08:00
Anders Hejlsberg
b878a27113 Support -target ES6 emit for destructuring, spread, and rest. 2014-12-14 09:43:14 -08:00
Anders Hejlsberg
b416cbc599 Merge branch 'master' into spreadAndRest
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
2014-12-12 14:32:53 -08:00
Cyrus Najmabadi
ffdddd53af Merge branch 'master' into funcDeclsInBlocks
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
2014-12-12 14:05:09 -08:00
Cyrus Najmabadi
83f0c91999 Properly emit 'void 0' when emitting destructuring assignments. 2014-12-12 11:28:05 -08:00
Anders Hejlsberg
a42df7547e Rest element support in array destructuring declarations 2014-12-11 18:27:08 -08:00
Anders Hejlsberg
6babef417f Rest element support in array literal destructuring assignment 2014-12-11 17:41:24 -08:00
Anders Hejlsberg
afa3111955 Check and emit of spread elements in array literals 2014-12-11 16:23:57 -08:00
Cyrus Najmabadi
b692ea9b66 Remove TryBlock and FinallyBlock.
They break the rule that syntactically identical constructs use the same syntax kind.  This
prevents node reuse in incremental parsing.
2014-12-11 14:40:25 -08:00
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
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
cc83925f32 Also split out .PropertyDeclaration and .PropertySignature from .Property. 2014-12-08 16:37:35 -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
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
jbondc
ab51f3069a Missing reference for getModuleInstanceState() 2014-12-05 07:18:23 -05:00
Anders Hejlsberg
b49e2772ea Addressing CR feedback 2014-12-04 17:43:15 -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
22d7aed980 CR feedback. 2014-12-03 15:27:14 -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
0900005438 Don't rewrite function property assignments in the AST. 2014-12-03 01:46:04 -08:00
Cyrus Najmabadi
ed81cad39a Remove the 'FunctionBlock' ast kind.
We don't want different AST forms for identical syntactic constructs ('Block' and 'FunctionBock').
This prevents reuse in incremental scenarios and forces the incremental parser to know when to
change between the two.
2014-12-02 22:52:21 -08:00
Cyrus Najmabadi
a8badd921e Update the name of 'PropertyAssignment' to 'LonghandPropertyAssignment'.
'PropertyAssignment' is now the name of the super interface brand we use for all thigns that can
be members of an object literal.
2014-12-02 22:01:52 -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
Anders Hejlsberg
0731a28978 Support exported destructuring variable declarations
Support .d.ts generation for functions with destructuring parameters
2014-12-02 15:52:29 -08:00
Yui T
1f6192578e Merge branch 'master' into refactorEmitter
Conflicts:
	src/compiler/emitter.ts
	src/compiler/parser.ts
	src/compiler/types.ts
2014-12-02 14:55:30 -08:00
Yui T
ff3d64f83c Address codereview 2014-12-02 14:41:54 -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
7994e9013c Emit for destructuring parameter declarations 2014-12-02 12:51:44 -08:00
Anders Hejlsberg
9e639113f8 Emit for destructuring assignments 2014-12-02 11:39:04 -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
44627f859f Simplify parsing code. 2014-12-01 22:50:03 -08:00
Cyrus Najmabadi
db89584a86 Put semantically relevant tokens in the tree. 2014-12-01 22:03:41 -08:00
Cyrus Najmabadi
f8a4fb0a15 Put semantically relevant tokens in the tree. 2014-12-01 19:19:50 -08:00
Cyrus Najmabadi
a29862eea5 Provide greater type safety in the ast system. 2014-12-01 18:49:57 -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
Cyrus Najmabadi
cc1da37e72 Use a single member to represent a module reference. 2014-12-01 13:24: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
Cyrus Najmabadi
ada6cebef3 Don't parse nodes, only to not include them in the tree. This will break incremental parsing scenarios.
Properly store the data for an external module reference in the AST.
2014-12-01 03:00:27 -08:00
Cyrus Najmabadi
7cc65ca73e Simplify the emitter. 2014-11-30 21:22:23 -08:00
Cyrus Najmabadi
aed8404b7d Simplify emitter. 2014-11-30 21:18:31 -08:00
Cyrus Najmabadi
16e28156e5 Support arbitrary numbers of implements and extends clauses (with arbitrary numbers of types) for classes and interfaces.
This vastly improves our error tolerance and messages for when the user writes an illegal heritage clause sequence.
2014-11-30 15:38:45 -08:00
Cyrus Najmabadi
5f15355372 Use brands for Class Elements. 2014-11-30 14:28:32 -08:00
Cyrus Najmabadi
0cdc824079 Provide brands for Declarations. 2014-11-30 14:21:34 -08:00
Cyrus Najmabadi
54bd524c90 Provide brands for statements.
Introduce a ModuleElement type to provide more clear typesafety.
2014-11-30 14:06:15 -08:00
Cyrus Najmabadi
5f00c7cdbc Change the names for property access and qualified names to match their types. 2014-11-29 17:25:52 -08:00
Cyrus Najmabadi
8989f1a782 Add greater typesafety in the expression portion of the syntax system.
Note: this change reveals that there is definitely some wonkyness going on
with nodes like FunctionLikeDeclaration.
2014-11-29 16:48:28 -08:00
Cyrus Najmabadi
e4b543981c Updating syntax kind names. 2014-11-29 15:58:55 -08:00
Cyrus Najmabadi
1d61ac5d5f Renaming syntax elements. 2014-11-29 15:52:46 -08:00
Cyrus Najmabadi
e1011aa2f0 Rename syntax properties to match Roslyn/Fidelity naming. 2014-11-29 15:47:02 -08:00
Cyrus Najmabadi
6a4927cef7 Provide unique nodes for void/typeof/delete expressions. 2014-11-29 13:43:30 -08:00
Anders Hejlsberg
28a73bc936 Emit of rest parameter for loop uses unique temporary variable name 2014-11-28 18:25:27 -08:00
Anders Hejlsberg
cf3e3ac6b8 Rewriting and emit for destructuring declarations 2014-11-28 10:13:52 -08:00
Jason Freeman
02dc56946e Merge branch 'master' into computedProperties 2014-11-26 20:12:04 -08:00
Cyrus Najmabadi
498a3274b8 Emit modules that contain only const enums, if the preserveConstEnum flag is provided. 2014-11-26 01:07:36 -08:00
Jason Freeman
17a09d1d36 Emit for computed properties 2014-11-25 16:08:55 -08:00
Yui T
e429bd9ba0 Merge branch 'refactorEmitter' of https://github.com/Microsoft/TypeScript into refactorEmitter
Conflicts:
	src/compiler/emitter.ts
2014-11-25 12:22:10 -08:00
Yui T
b550383143 Refactoring emitter for emit ES6 features natively 2014-11-25 12:18:15 -08:00
Yui T
460fc037e6 Refactoring emitter for emit ES6 features natively 2014-11-25 12:12:55 -08:00
Yui T
169bc219f2 Merge branch 'binaryIntegerLiteral' of https://github.com/Microsoft/TypeScript into binaryIntegerLiteral 2014-11-24 18:38:03 -08:00
Yui T
30d58dd220 Address code review 2014-11-24 18:36:07 -08:00
Yui T
a580040863 Address code review 2014-11-24 14:36:05 -08:00
Yui T
d04a3c7c23 Add comment 2014-11-23 18:19:10 -08:00
Anders Hejlsberg
6b96386337 Allow string or numeric literal as property name of object binding
Require RHS of array destructuring to be an actual array type (i.e. assignable to any[])
Tighten test for tuple type (previously just required a "0" property)
2014-11-22 15:38:20 -08:00
Yui T
670a8c0a76 Binary and octal integer literal support 2014-11-21 18:09:50 -08:00
Anders Hejlsberg
38a2640053 Propagate node kind in variable/parameter destructuring declarations 2014-11-21 16:50:44 -08:00
Sheetal Nandi
28c41e869a Merge branch 'master' into constLet 2014-11-20 21:06:08 -08:00
Sheetal Nandi
e101c2783c Merge branch 'release-1.3' 2014-11-20 20:32:36 -08:00
Sheetal Nandi
77572dab0c Merge remote-tracking branch release-1.3 2014-11-20 20:24:08 -08:00
Sheetal Nandi
0762e55286 Merge branch 'master' into constLet 2014-11-20 17:27:39 -08:00
Sheetal Nandi
763a1143ab Merge pull request #1122 from Microsoft/useTypeAnnotationInDeclarationsEmitter
Use type annotation in declarations emitter
2014-11-20 16:58:38 -08:00
Sheetal Nandi
4320c67a38 Merge branch 'master' into constLet 2014-11-20 16:56:14 -08:00
Sheetal Nandi
b7600006fb Write constructor type and function type annotation to adapt to new SyntaxKind introduced 2014-11-20 16:38:57 -08:00
Sheetal Nandi
f44d0c07d4 Merge branch 'master' into useTypeAnnotationInDeclarationsEmitter 2014-11-20 16:10:14 -08:00
Sheetal Nandi
ff23748908 Merge pull request #1131 from Microsoft/relativePathReferenceResolution
Fix the relative path reference resolution
2014-11-20 15:59:06 -08:00
Anders Hejlsberg
58c3c2faae Merge branch 'master' into destructuring
Conflicts:
	src/compiler/binder.ts
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
2014-11-20 14:31:55 -08:00
Cyrus Najmabadi
6865265b45 Merge branch 'master' into grammarChecks 2014-11-20 13:07:45 -08:00
Daniel Rosenwasser
8d4e9064d0 Addressed CR feedback. 2014-11-19 22:11:17 -08:00
Cyrus Najmabadi
f605699604 Merge branch 'master' into grammarChecks
Conflicts:
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
	tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt
2014-11-19 17:29:39 -08:00
Daniel Rosenwasser
f51a42c6de Fixed issue where template expression in call expressions would emit with unnecessary parentheses.
Fixes #1205.
2014-11-19 17:04:34 -08:00
Sheetal Nandi
264bd5db7c Merge branch 'master' into relativePathReferenceResolution 2014-11-19 13:11:17 -08:00
Cyrus Najmabadi
9170962998 Move declaration list checking to the grammar checks. 2014-11-19 02:11:17 -08:00
Yui T
df54db758a Merge branch 'master' into usingShorthand
Conflicts:
	bin/tsc.js
	bin/typescriptServices.js
	src/compiler/parser.ts
2014-11-18 18:25:51 -08:00
Yui T
970aac6458 Address code review 2014-11-18 16:32:18 -08:00
Mohamed Hegazy
22e2bde7e9 Merge pull request #1158 from gisenberg/master
Adding support for named AMD modules.
2014-11-18 12:18:48 -08:00
Yui T
26a5e4333e Refactoring emitter using short-hand 2014-11-18 12:04:18 -08:00
Yui T
1b66ee6f3a Merge branch 'master' into shorthandProperty
Conflicts:
	src/compiler/checker.ts
2014-11-17 11:35:02 -08:00
Dick van den Brink
e7bb2e0ba7 Merge branch 'master' into warnaserror
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/types.ts
	src/harness/harness.ts
2014-11-16 22:02:00 +01:00
Yui T
880e958d11 Fix comment 2014-11-14 16:30:03 -08:00
Yui T
a8ebdf0cbd Address code review 2014-11-13 12:02:13 -08:00
Yui T
1888f736e1 Fix emit for shotr-hand assignment for module 2014-11-13 11:33:31 -08:00
Gabriel Isenberg
843d3ec7ca Added a compiler test for named AMD modules. 2014-11-13 11:00:06 -08:00
Sheetal Nandi
5e94f4a5c2 Code review feedback 2014-11-12 15:40:45 -08:00
Gabriel Isenberg
2302bd23ab Initial support for named AMD modules. 2014-11-12 11:45:43 -08:00
Sheetal Nandi
63a20863c1 Fix the relative path reference resolution
Fixes #1039
2014-11-11 23:06:45 -08:00
Sheetal Nandi
60f79da623 Show error for visibility only on the identifier resulting the error 2014-11-10 18:50:28 -08:00
Sheetal Nandi
c7bd7c9557 Remove unnecessary privacy errors for heritage and constraint type annotation 2014-11-10 18:34:59 -08:00
Sheetal Nandi
d6fb678222 Test cases for type alias declaration emit and privacy check.
Also removed the unnecessary error messages for type alias privacy check
2014-11-10 18:28:05 -08:00
Sheetal Nandi
ffdb0fc45d Show error about entity name visibility on entity name resulting in the error 2014-11-10 17:01:17 -08:00
Sheetal Nandi
9ba4d37d7b Emit the type annotation as it is in the declaration file if we have it 2014-11-10 17:01:05 -08:00
Anders Hejlsberg
af00c718cc End-to-end support for destructuring in variable declarations 2014-11-10 13:05:47 -08:00
Vladimir Matveev
89dee07bf2 merge with master 2014-11-09 23:23:49 -08:00
Yui T
8a779e1e85 Basic typechecking and emitting for short hand property assignment
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/emitter.ts
2014-11-06 15:01:39 -08:00
Jason Freeman
279166be50 Address feedback 2014-11-06 11:51:49 -08:00
Jason Freeman
6c85dbe140 Refactor Declaration.name into Identifier | ComputedPropertyName 2014-11-05 17:47:30 -08:00
Vladimir Matveev
edbb99d959 merge with master 2014-11-05 17:34:42 -08:00
vladima
9295a0e357 update LKG, always emit value as initializer for const enums when 'preserveConstEnums' is specified 2014-11-04 11:26:01 -08:00
Vladimir Matveev
a8e5aad6e8 use const enums in compiler 2014-11-03 23:31:38 -08:00
Cyrus Najmabadi
ecd31b6f6f Emit case clause statements on the same line if that's how they were written in source. 2014-11-03 18:36:01 -08:00
Vladimir Matveev
2d94030f58 inline enum constant values for indexed access when index is string literal 2014-11-01 18:16:48 -07:00
Vladimir Matveev
0b738e86c4 merge with master 2014-11-01 02:06:37 -07:00
Vladimir Matveev
7d80b7186d do not treat module that contains only const enums as instantiated 2014-11-01 00:56:00 -07:00
Vladimir Matveev
270d18711c addressed CR feedback 2014-10-30 00:55:44 -07:00
Vladimir Matveev
e949eda583 const enums, iteration 1: const enums can be used in imports, const enums can be merged only with const enums. 2014-10-29 00:17:16 -07:00
Vladimir Matveev
6f4ea86227 merge with master 2014-10-28 21:49:58 -07:00
Daniel Rosenwasser
35cf95c146 Merge branch 'master' into templates
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/types.ts
	src/services/utilities.ts
2014-10-28 19:06:07 -07:00
Daniel Rosenwasser
b8535d339c Omit empty template tail literals. 2014-10-28 18:47:43 -07:00
Daniel Rosenwasser
aabfebd40e Fixed emit for parenthesized template expressions. 2014-10-28 18:47:29 -07:00
Daniel Rosenwasser
4aafe1d2bc Addressed CR feedback. 2014-10-28 18:44:07 -07:00
Dick van den Brink
e4f57569b7 addressed feedback 2014-10-28 19:45:18 +01:00
Vladimir Matveev
2dd9511b0a 'const enum' iteration 0. TODO: allow and track const enums in imports, add more tests 2014-10-27 23:56:07 -07:00
Anders Hejlsberg
7f9c9b6825 Support for type aliases in .d.ts generation 2014-10-25 10:48:02 -07:00
Vladimir Matveev
622b7613f7 merge with master 2014-10-24 15:44:12 -07:00
Daniel Rosenwasser
e7096280b4 Added support for tagged template strings, updated baselines.
Still need to implement some error recovery and add tests.
2014-10-23 16:54:11 -07:00
Daniel Rosenwasser
b704f19502 Merge branch 'letAndConst' into templates
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
2014-10-23 16:03:53 -07:00
Daniel Rosenwasser
518a5d3a48 Rudimentary template support, excluding tagging. 2014-10-23 14:57:47 -07:00
Sheetal Nandi
2e36faed28 Fix the crash in declaration file emit when alias is used before its declaration
Fixes #938
2014-10-22 10:23:15 -07:00
Mohamed Hegazy
dd7ca69866 Create a new flag for diagnostics 'isEarly' and disable emit if this flag is set. Set the flag by default on all let and const errors to ensure we are not emitting invalid JS code. 2014-10-20 17:38:50 -07:00
Mohamed Hegazy
0e7d8b62ef Merge branch 'master' into letAndConst 2014-10-20 13:34:06 -07:00
Anders Hejlsberg
81eaae0afa Require optional properties to be present in subtypes
Remove unused getBestCommonType method (unrelated change)
2014-10-19 16:43:32 -07:00
Mohamed Hegazy
e15f4e6d34 Merge branch 'master' into letAndConst
Conflicts:
	src/compiler/types.ts
2014-10-16 09:30:58 -07:00
Mohamed Hegazy
61549239d8 Fix emitting for const in for loops 2014-10-15 09:20:46 -07:00
Vladimir Matveev
b6b80817f4 initial revision of formatting 2014-10-14 14:44:38 -07:00
Yui T
ac68f93189 Addres code review 2014-10-14 12:16:26 -07:00
Yui T
848bfe7160 Update language service to use getDeclarationDiagnostics instead of emitFile to get declaration errors 2014-10-13 12:41:26 -07:00
Sheetal Nandi
a934d50a9b Move symbolDisplayPartKind to services side 2014-10-13 12:35:17 -07:00
Yui T
cc48fc3efd Refactoring parameters formatting 2014-10-13 11:27:07 -07:00
Mohamed Hegazy
778f101dea Add basic parsing support for let and const 2014-10-12 21:10:04 -07:00
Yui T
fee4343218 Refactoring emitDeclaration, separate emitDeclaration from emitFiles 2014-10-10 16:44:14 -07:00
Yui T
00c30a3ed7 Merge branch 'master' into fixThrowExceptionOnEmitFile 2014-10-09 14:36:48 -07:00
Yui T
3cb6c9cf45 Add isDeclarationFile and update similar all usage 2014-10-09 14:19:36 -07:00
Yui T
ab5f0241eb Fix comments 2014-10-09 10:12:49 -07:00
Sheetal Nandi
58cfc985b9 Merge branch 'master' into symbolInfoFormatting 2014-10-08 18:25:42 -07:00
Yui T
90ed17b21e Fix formatting 2014-10-08 18:18:41 -07:00
Yui T
67eff65e03 Add more test cases 2014-10-08 18:15:07 -07:00
Yui T
b90c5f2ca4 Address code review 2014-10-08 10:26:39 -07:00
Yui T
96cdc4f163 Fix throwing exception from emitFile 2014-10-07 21:41:04 -07:00
Yui T
530a5c0650 Merge branch 'master' into getEmitOutputExternalModule 2014-10-07 13:21:19 -07:00
Yui T
7d725037b3 Address code review 2014-10-07 13:20:06 -07:00
Yui T
d345d228a7 Fix spelling 2014-10-07 10:17:29 -07:00