-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Provide/Inject fails with polyfilled Symbol #7284
Labels
Comments
Symbol isn't even supported in IE11. Are you using a polyfill? |
@yyx990803 |
I'm hesitant to say that it's an issue with the Symbol polyfill specifically since it works when I change the I've found that the bug is only reproducible:
|
privatenumber
pushed a commit
to privatenumber/vue
that referenced
this issue
Jan 16, 2018
Symbol polyfill adds a setter on the Object prototype so the 'in' check evaluated to true on every object fix vuejs#7284
privatenumber
pushed a commit
to privatenumber/vue
that referenced
this issue
Jan 16, 2018
Prototype properties were being injected, so injecting 'constructor' would have hit the first provide-layer and not yield expected results. fix vuejs#7284
13 tasks
yyx990803
pushed a commit
that referenced
this issue
Mar 8, 2018
fix #7284 * fix(Injection with Symbol polyfill): hasOwn instead of 'in' Symbol polyfill adds a setter on the Object prototype so the 'in' check evaluated to true on every object * test(Injected properties): Ensures prototype properties aren't injected Prototype properties were being injected, so injecting 'constructor' would have hit the first provide-layer and not yield expected results.
This was referenced Mar 14, 2018
f2009
pushed a commit
to f2009/vue
that referenced
this issue
Jan 25, 2019
) fix vuejs#7284 * fix(Injection with Symbol polyfill): hasOwn instead of 'in' Symbol polyfill adds a setter on the Object prototype so the 'in' check evaluated to true on every object * test(Injected properties): Ensures prototype properties aren't injected Prototype properties were being injected, so injecting 'constructor' would have hit the first provide-layer and not yield expected results.
aJean
pushed a commit
to aJean/vue
that referenced
this issue
Aug 19, 2020
) fix vuejs#7284 * fix(Injection with Symbol polyfill): hasOwn instead of 'in' Symbol polyfill adds a setter on the Object prototype so the 'in' check evaluated to true on every object * test(Injected properties): Ensures prototype properties aren't injected Prototype properties were being injected, so injecting 'constructor' would have hit the first provide-layer and not yield expected results.
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Version
2.5.12
Reproduction link
https://jsfiddle.net/hirokiosame/dronjdzm/16/
Steps to reproduce
Run code in IE11.
Either remove the
<wrapper>
from theParent
component on L25 or change the Symbol into a String on L9 and it will work fine.What is expected?
For it to print "Message from parent: Hello World from Parent"
What is actually happening?
Doesn't receive the injection.

The text was updated successfully, but these errors were encountered: