Commit Graph

1545 Commits

Author SHA1 Message Date
Julian Rosse
25c23786af AST: recognize quoted constructor (#5251)
* astNode()

* no override ast()

* add suggested comments

* astInitialize()

* astAddReturns()

* separate step

* recognize quoted constructor
2019-12-08 14:40:23 -08:00
Julian Rosse
47bf5d962b AST: mark implicit returns (#5255)
* astNode()

* no override ast()

* add suggested comments

* astInitialize()

* astAddReturns()

* separate step
2019-12-08 13:37:58 -08:00
Julian Rosse
d735c81da0 Location data: compensate for stripped characters (#5249)
* location data compensations

* previous lines compensation
2019-12-01 12:26:10 -08:00
Julian Rosse
f56515b100 Compound assign location data (#5248)
* Assign declaration

* For

* Class

* import/export

* params

* Catch

* compound assign location data
2019-11-30 18:51:48 -08:00
Julian Rosse
74d6635f95 AST: declarations (#5247)
* Assign declaration

* For

* Class

* import/export

* params

* Catch
2019-11-30 18:49:10 -08:00
Julian Rosse
95d6ec7492 handle empty program AST (#5245)
Looks good!
2019-11-28 16:31:10 -08:00
Julian Rosse
265b251a7d AST comments: include in blocks; heregex comments (#5233)
* simple trailing comment

* multiple trailing tests

* fix rebase

* leading comments

* empty block

* nested dedented comment

* check preceding

* trailing implicit call in condition

* don't include heregex comments in AST

* expose heregex comments in AST

* heregex comment location data

* don't use object spread
2019-08-24 01:10:08 -07:00
Julian Rosse
7539f7af2e Reconcile ast branch with Prettier plugin: part 2 (#5234)
* pass level

* assign always expression

* escaped backticks in PassthroughLiteral

* computed class properties
2019-08-18 17:30:24 -07:00
Julian Rosse
2f27225e8c JSX namespaced name AST (#5231)
* opening element

* closing element
2019-07-30 17:58:51 -07:00
Julian Rosse
99ad0cc16c Merge master into ast (#5230)
* Fix #5213: Update Babel options to restore MINIFY=false (#5214)

* CSX namespaced tags and attributes (#5218)

* Support namespaces in attributes

* Support namespaces in tag names

* Support reserved words in CSX boolean properties (fix #5125)

* Implement review comments

* Build

* Revert parser.js
2019-07-29 17:49:22 -07:00
Julian Rosse
9d1af43c91 Start reconciling ast branch with Prettier plugin (#5228)
* export IDENTIFIER

* leading comment + directive

* function hasIndentedBody

* missing o

* Sequence

* root location data with leading comment

* empty interpolations

* fixes from code review
2019-07-29 09:07:10 -07:00
Julian Rosse
c6fdde8834 Chained comparison AST (#5225)
* chained comparison AST

* Explicit return

Co-Authored-By: Geoffrey Booth <GeoffreyBooth@users.noreply.github.com>
2019-07-24 07:11:42 -07:00
Julian Rosse
0174ee082c super AST (#5226) 2019-07-23 16:01:12 -07:00
Julian Rosse
82b7bd3a92 use OptionalMemberExpression/OptionalCallExpression (#5224) 2019-07-21 21:51:46 -07:00
Julian Rosse
1f22c16bee Basic comments AST; PassthroughLiteral AST (#5220)
* passing existing tests

* comments ast

* fixes from code review
2019-07-21 18:05:05 -07:00
Julian Rosse
f33d4dd4f1 Compile heredocs to template literals (#5211)
* compile heredocs to template literals

* disallow pseudo-octal escapes

* extend existing guard against continuations looking like octal escapes

* convert trailing null escapes

* nicer pattern for conditional heregex chunks

* remove covered test
2019-05-15 16:13:59 -07:00
Julian Rosse
f0bb59790a Directive AST (#5209)
* directive AST

* heredoc AST

* updates from code review
2019-05-05 21:07:04 -07:00
Julian Rosse
391fcc4afa Class AST: bound/computed properties, executable body (#5208)
* executable class body aST

* tests for bound/computed

* remove

* computed
2019-04-29 13:42:36 -07:00
Julian Rosse
7b2fb18a0b Class prototype property AST (#5205)
* class prototype property AST

* consistent naming

* extract fix for #5204
2019-04-28 16:54:59 -07:00
Geoffrey Booth
5596a5c209 Merge branch 'master' of github.com:jashkenas/coffeescript into ast
# Conflicts:
#	lib/coffeescript/grammar.js
#	lib/coffeescript/parser.js
2019-04-28 16:27:26 -07:00
Julian Rosse
71750554c3 Allow computed class properties (#5206)
* fix broken JS output

* static computed properties
2019-04-28 15:45:57 -07:00
Julian Rosse
0574b664e8 Fix #5201: allow leading breaking elision (#5202)
* allow simple breaking elision

* add tests

* use OptComma

* more tests

* trigger CI
2019-04-22 10:21:37 -07:00
Julian Rosse
ca0ac814b3 parse array ending in empty function (#5200) 2019-04-18 15:36:04 -07:00
Julian Rosse
c0b3217766 Class AST: static methods/properties (#5199)
@GeoffreyBooth PR for class static methods/static properties

Remaining parts of class ASTs include bound/computed methods/properties and executable class bodies
2019-04-15 10:06:00 -07:00
Julian Rosse
12a5271489 object property at LEVEL_LIST (#5197) 2019-04-09 23:19:04 -07:00
Julian Rosse
086430840e basic class ast (#5194) 2019-04-05 21:31:25 -07:00
Julian Rosse
82f92fea97 allow indented property index (#5193) 2019-04-04 08:33:51 -07:00
Erik Demaine
d23919c430 Preserve environment when calling coffee from test (#5191)
This change spawns `coffee` with a new path, but without removing all other
environment variables.  This is useful for preserving environment needed by
Node, for example, `LD_LIBRARY_PATH` on Unix.  In particular, fix #5179.
2019-04-02 11:35:22 -07:00
Julian Rosse
ada35d8951 handle jsx element as expression (#5190) 2019-04-01 09:12:52 -07:00
Julian Rosse
7e0eb6a92d JSX empty expression location data (#5189) 2019-03-31 15:04:08 -07:00
Julian Rosse
28a1a1d304 AST: "CSX" -> "JSX" (#5188)
* updated grammar

* restore JSXIdentifier::astType()
2019-03-31 12:13:05 -07:00
Julian Rosse
0c2d3673d3 ast for jsx content (#5187) 2019-03-31 10:24:58 -07:00
Julian Rosse
730a4bcdad Tagged template literal AST (#5185)
* tagged template literal ast

* add comment
2019-03-30 11:31:00 -07:00
Julian Rosse
7466c81414 Index at LEVEL_PAREN (#5184) 2019-03-29 12:05:42 -07:00
Julian Rosse
b79ea321a3 regex ast (#5183) 2019-03-29 12:05:03 -07:00
Julian Rosse
ae2f72e15d Heregex AST (#5181)
* heregex ast

* fix from code review
2019-03-28 23:15:09 -07:00
Julian Rosse
b982b7cd0e dynamic import AST (#5180) 2019-03-26 08:20:12 -07:00
Geoffrey Booth
0b5bac666f Merge branch 'master' into ast
# Conflicts:
#	lib/coffeescript/grammar.js
#	lib/coffeescript/nodes.js
#	lib/coffeescript/parser.js
#	package-lock.json
#	src/nodes.coffee
#	test/error_messages.coffee
2019-03-24 19:22:33 -07:00
Ruben Bridgewater
41b31c7293 Fix repl.rli deprecation (#5178)
The `rli` property is just a reference to itself. It still exists
for legacy reasons but it will likely be removed in a future major
version. This makes sure everything works as expected.
2019-03-24 19:12:32 -07:00
Julian Rosse
eaeb77a527 String interpolation AST (#5175)
* updated grammar

* empty chunks

* remove unused

* remove unused

* add comment
2019-03-24 19:00:44 -07:00
Julian Rosse
ff24e5ce52 Dynamic import (#5169)
* dynamic import

* updated grammar

* specify callable

* DynamicImportCall

* Fix from code review

Co-Authored-By: helixbass <julian@helixbass.net>

* recompile
2019-03-20 13:08:10 -07:00
Julian Rosse
4549f9a4c5 AST: Preserve infinity literal (#5172)
* updated grammar

* tests
2019-03-17 22:28:51 -07:00
Julian Rosse
d0be6391c6 For AST (#5173)
* updated grammar

* adding tests

* location data tests
2019-03-17 22:27:21 -07:00
Julian Rosse
f70f4f09b7 conditional else as simple expression (#5171) 2019-03-17 00:01:46 -07:00
Julian Rosse
3f5abb3c60 MetaProperty AST (new.target) (#5170)
* updated grammar

* updated grammar

* passing tests

* test errors ast
2019-03-16 18:51:39 -07:00
Julian Rosse
ca275c2a1c Fix #5128: parens around default param (#5167)
* compile params at LEVEL_PAREN

* test
2019-03-14 18:14:35 -07:00
Julian Rosse
99b7826f1b While AST (#5161)
* updated grammar

* tests

* add tests
2019-02-25 10:03:18 -08:00
Julian Rosse
806a442894 If AST (#5160)
* updated grammar

* updated grammar

* tests

* location data tests

* fix from code review
2019-02-14 19:51:33 -08:00
Alex
63ffe0aead Fix 5085 (#5145)
* Add test for #5085

    $ cake test
    failed 1 and passed 1274 tests in 4.81 seconds

      #5085: Bug: @ reference to class not maintained in do block
      AssertionError [ERR_ASSERTION]: Expected undefined to equal 2

* Fix #5085: @ reference to class in "do" block

Assuming that a bound Code node inside an ExecutableClassBody without a
name must be a "do" block.

* Additional tests

https://github.com/jashkenas/coffeescript/pull/5145#issuecomment-462127244

Also switched to concat'g strings for test values, as opposed to
incrementing numbers: makes the tests a bit easier to read.
2019-02-11 07:28:04 -08:00
Julian Rosse
74e0798f89 Return AST (#5157)
* updated grammar

* FuncDirectiveReturn class

* error tests
2019-02-10 08:48:48 -08:00