Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Immutable Data Stuctures Docs #9845

Merged
merged 4 commits into from
Jul 6, 2017
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/docs/optimizing-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ const y = x.set('foo', 'baz');
x === y; // false
```

In this case, since a new reference is returned when mutating `x`, we can safely assume that `x` has changed.
In this case, since a new reference is returned when mutating `x`, we can safely assume that `x` has not changed.
Copy link
Contributor

@aweary aweary Jun 5, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see where the confusion is coming from, but I think this is also missing the point that's it's trying to communicate. When it says

we can safely assume that x has changed.

It means we know the value that x was holding, which was updated and stored in a new reference y, has changed because the reference equality check returned false.

We should clarify this point better. I suggest something like:

In this case, since a new reference is returned when mutating x we can use a reference equality check (x === y) to verify that the new value stored in y is different than the original value stored in x.

It might also be useful to demonstrate that updating a record with the same value results in a passing equality check:

const y = x.set('foo', 'bar')
x === y // true

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reply! I've implemented these changes in a new commit.


Two other libraries that can help use immutable data are [seamless-immutable](https://github.com/rtfeldman/seamless-immutable) and [immutability-helper](https://github.com/kolodny/immutability-helper).

Expand Down