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.
New features intended for easier creation of higher-order components.
- New instance properties: $attrs & $listeners. these are essentially aliases
of $vnode.data.attrs and $vnode.data.on, but are reactive.
- New component option: inheritAttrs. Turns off the default behavior where
parent scope non-prop bindings are automatically inherited on component root
as attributes.
close#5983.
* simply fix inject extends
* add comments for normalizeInject
* normalizeInect should return for non-array
* remove isArray branch in resolveInject
* add test case for extending injection
* Create options.js
* type of inject should be object now
* Revert "type of inject should be object now"
This reverts commit 8466a2866b868de00f755b80e5b3a3dc8bdc2d86.
* Added check for if child is already an array
If the child is already an array it does not need to be wrapped again.
Fixing #5652
* Added unit test for watch merge strat
* Moved test to own describe
* Added test for merging multiple extends
* warn when a inject has been not provided
* typo
* typo
* fix when undefined is provided
* use util hasOwn
* refactor
* test case
* Revert "test case"
This reverts commit 08f0a8b6c3837fc34ddd264712b8c30a05c165e5.
* test case
* warn when component should be an object, but is not
* remarks
* remarks
* remarks
* rename to checkOptionType and guard production
* typo
* Update state.js
* Update test-object-option.js