Commit Graph

2761 Commits

Author SHA1 Message Date
Cyrus Najmabadi
d8da2a4d34 Remove restriction that you cannot reuse nodes/tokens during incremental parsing while doing speculatively operations.
Great idea from @yuit

This restriction was in place because the old parser would mutate nodes as it created them. i.e. when
creating a node it would set the parent of its children right then.  During incremental parsing, this
couldl be bad because we might take an old node, set its parent to be something else, and then decide
we didn't even want to go down that speculative path to begin with.  Now the parent of some child node
would be mutated.  So we might have a node that pointed to a child that then pointed to a different
parent.

To get around this, we restricted the incremental so that it would not reuse from the previous tree
if we were speculatively parsing.  However, Yui had a very good idea to just move the parent setting
phase to be a postpast (similar to the new compiler).  By doing this, we never mutate nodes as we
parse, and thus we never end up with inconsistent nodes.  The post pass then ensures that all parents
are correct relative to the new tree.

Conflicts:
	src/services/syntax/SyntaxGenerator.js
	src/services/syntax/SyntaxGenerator.js.map
	src/services/syntax/incrementalParser.ts
	src/services/syntax/scanner.ts
	src/services/syntax/syntaxGenerator.ts
	src/services/syntax/syntaxNodes.concrete.generated.ts
2014-12-05 12:57:08 -08:00
CyrusNajmabadi
57e1cf984a Merge pull request #1383 from Microsoft/fidelity1
Bits of Fidelity cleanup.
2014-12-05 09:15:04 -08:00
Cyrus Najmabadi
9982795200 Rename _skippedTokens to skippedTokens. 2014-12-05 09:05:36 -08:00
Cyrus Najmabadi
12e90a09ef Simplify parser API. 2014-12-05 09:05:28 -08:00
Cyrus Najmabadi
9cf588d4be Move syntax cursor into its own file. 2014-12-05 09:05:14 -08:00
CyrusNajmabadi
19841afc7d Merge pull request #1378 from Microsoft/useCallbacksForSpeculativeParsing
Use callbacks for speculative parsing.
2014-12-05 08:10:14 -08:00
Cyrus Najmabadi
8032c0f950 Use callbacks for speculative parsing. 2014-12-04 19:05:01 -08:00
CyrusNajmabadi
308d8e5d1e Merge pull request #1372 from Microsoft/forEach
ForEach cleanup
2014-12-04 18:55:19 -08:00
Sheetal Nandi
ad062c1257 Merge pull request #1374 from Microsoft/let
"let" should only be considered a keyword in strict mode, or when it starts an actual construct
2014-12-04 17:54:35 -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
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
Vladimir Matveev
fc47fc31be Merge pull request #1371 from Microsoft/nullref_with_hotswapping
Remove redundant initialization code from the constructor of SyntaxTreeCache
2014-12-04 13:13:08 -08:00
Cyrus Najmabadi
bce8314e0b Don't return the last falsy value when forEach'ing over an array. 2014-12-04 13:11:42 -08:00
Mohamed Hegazy
306b4a2841 Merge pull request #1347 from Microsoft/test262RunnerUpdates
Update test262 runner to serialize flags
2014-12-04 13:07:33 -08:00
Cyrus Najmabadi
7e6f1ab01d Don't return the last falsy element in forEachChild. 2014-12-04 13:06:03 -08:00
Sheetal Nandi
e3320c2530 Merge pull request #1362 from Microsoft/contextSensitiveExpressions
Resolve the context sensitive expression containers before resolving node
2014-12-04 13:02:56 -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
Sheetal Nandi
c3c44dc3c8 Some renaming and added comments as per feedback 2014-12-04 12:55:54 -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
CyrusNajmabadi
824edead9e Merge pull request #1368 from Microsoft/parseErrors
Remove all function expression allocations when speculatively parsing or looking ahead.
2014-12-04 12:35:40 -08:00
Cyrus Najmabadi
405508c100 CR feedback. 2014-12-04 12:32:16 -08:00
Vladimir Matveev
658ff2498a drop redundant initialization code 2014-12-04 12:00:26 -08:00
Mohamed Hegazy
e52b1fcc24 Merge branch 'master' into test262RunnerUpdates 2014-12-04 11:54:42 -08:00
Mohamed Hegazy
580e23e259 Merge pull request #1358 from Arnavion/fix-missing-return-types
Fix missing return types.
2014-12-04 11:46:53 -08:00
Mohamed Hegazy
5d8ab1a654 Merge pull request #1366 from jbondc/master
Fix so 'jake diff' works with PowerShell.
2014-12-04 11:45:19 -08:00
jbondc
41c8476743 Code Review 2014-12-04 14:15:00 -05:00
Mohamed Hegazy
081ff7c0b6 Merge branch 'master' into test262RunnerUpdates 2014-12-04 10:57:08 -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
9beb730757 Fix indentation. 2014-12-04 10:08:32 -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
jbondc
5b9022a51c Fix so 'jake diff' works with PowerShell. 2014-12-04 09:27:24 -05: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
CyrusNajmabadi
05dc93462c Merge pull request #1349 from Microsoft/propertyAssignments
Property assignments
2014-12-03 19:57:08 -08:00
Cyrus Najmabadi
c735ccc46d Merge branch 'master' into propertyAssignments 2014-12-03 19:33:33 -08:00
Cyrus Najmabadi
9a1ec50456 Improve naming of checker methods. 2014-12-03 17:38:55 -08:00
Cyrus Najmabadi
1c4b8d9c85 Improve names for functions in the checker. 2014-12-03 16:04:33 -08:00
Cyrus Najmabadi
158cf62206 More CR feedback. 2014-12-03 15:36:39 -08:00
Cyrus Najmabadi
22d7aed980 CR feedback. 2014-12-03 15:27:14 -08:00