Replace "instanceof Array" in transformer with "[object Array]" comparison#3984
Closed
ide wants to merge 1 commit intojashkenas:masterfrom
Closed
Replace "instanceof Array" in transformer with "[object Array]" comparison#3984ide wants to merge 1 commit intojashkenas:masterfrom
ide wants to merge 1 commit intojashkenas:masterfrom
Conversation
Array.isArray allows arrays from another JS context to be properly handled. The specific use case here is to support jest, which sets up JS contexts using Node/io.js's "vm" module. The downside to this patch is that IE8 needs a polyfill for Array.isArray. If IE8 support for the in-browser transform (not the output of the coffeescript compiler) is important, it would be simple to include a polyfill with coffee-script.
Collaborator
|
Sorry, we can't accept PRs that drop ES3 support. |
Collaborator
|
Though we could do a similar check, |
Contributor
Author
|
I was hoping some kind of shim would be acceptable for environments that don't support Array.isArray natively, like isArray = (value) ->
if Array.isArray?
Array.isArray value
else
'[object Array]' is Object::toString.call element |
Contributor
Author
|
@michaelficarra: I updated the commit with your suggestion of checking with edit: I didn't realize that github doesn't update closed PRs. New PR at #3985. Sorry about that. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Testing with
'[object Array]' is Object::toString.call elementallows arrays from another JS context to be properly handled. The specific use case here is to support jest, which sets up JS contexts using Node/io.js's "vm" module. This approach works in ES3 environments in contrast with ES5'sArray.isArray.