Skip to content

Commit

Permalink
FIX: each myV, myK from-object with myK # myK wasn't getting created …
Browse files Browse the repository at this point in the history
…correctly
  • Loading branch information
shanebdavis committed May 13, 2019
1 parent 9cc1b8f commit d273f18
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 15 deletions.
6 changes: 6 additions & 0 deletions TODO-SCRATCH.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ Syntax Highlighting


# To Sort
```
# naming the key in from-object doesn't work
each v, k4 from-object source
_into[k4] = v
```

```
###
The interpolation fails to parse, which then means it becomes part of the string!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -358,11 +358,16 @@ class ComprehensionStn extends &ScopeStnMixin &BaseStn
StatementsStn
if variableDefinition?.length > 0
if fromObjectClause
AssignmentStn
valueId.identifierStn ? valueId
AccessorStn
fromId
keyValueStn
array v, i in variableDefinition
AssignmentStn
v.identifierStn ? v
if i == 0
AccessorStn
fromId
keyValueStn
else
iId

else
array v, i in variableDefinition
AssignmentStn
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,7 @@ Caf.defMod(module, () => {
invokeWithClauseAndPush,
loopStn,
positiveByTest,
negativeByTest,
temp;
negativeByTest;
({ variableDefinition } = this.labeledChildren);
variableDefinition =
Caf.exists(variableDefinition) && variableDefinition.children;
Expand Down Expand Up @@ -657,16 +656,17 @@ Caf.defMod(module, () => {
(Caf.exists(variableDefinition) &&
variableDefinition.length) > 0
? fromObjectClause
? AssignmentStn(
(temp = valueId.identifierStn) != null
? temp
: valueId,
AccessorStn(fromId, keyValueStn)
)
? Caf.array(variableDefinition, (v, i) => {
let temp;
return AssignmentStn(
(temp = v.identifierStn) != null ? temp : v,
i === 0 ? AccessorStn(fromId, keyValueStn) : iId
);
})
: Caf.array(variableDefinition, (v, i) => {
let temp1;
let temp;
return AssignmentStn(
(temp1 = v.identifierStn) != null ? temp1 : v,
(temp = v.identifierStn) != null ? temp : v,
!toClause && i === 0
? AccessorStn(fromId, iId.getValueStn())
: iId
Expand Down
17 changes: 17 additions & 0 deletions test/tests/CaffeineScript/Parser/Comprehensions.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,23 @@ module.exports = suite: parseTestSuite
for (let k in from)
{let v; v = from[k]; into[k] = v;};
into;"
regressions:
"object myV from-object b with myV": "
let from, into;
from = b || {};
into = {};
for (let k in from)
{let myV; myV = from[k]; into[k] = myV;};
into;"

"object myV, myK from-object b with myV + myK": "
let from, into;
from = b || {};
into = {};
for (let k in from)
{let myV, myK; myV = from[k]; myK = k; into[k] = myV + myK;};
into;"


fromArray:
each:
Expand Down

0 comments on commit d273f18

Please sign in to comment.