Features
- compiler: output source range for compiler errors (#7127) b31a1aa, closes #7127 #6338
- build: add browser ESM build 861abf4
- add Vue.observable() for explicitly creating observable objects c50bbde
- expose performance measures 9ae80ac, closes #7570
- support .property shorthand syntax for v-bind.prop modifier d2902ca, closes #7582
- support custom toString() in text interpolation and v-html (#8217) 0e4e45e, closes #8217 #8093
- support v-html for SVG elements (#8652) a981c80, closes #8652
- v-bind.sync also listens for kebab-case update event (#8297) 3fca527, closes #8297 #6428
- compiler: add whitespace option, deprecate preserveWhitespace option e1abedb, closes #9208
- compiler: expose generateCodeFrame method a4ed58c
- compiler: output codeframe in browser compiler 325fc76
- compiler: support deindent: false in vue-template-compiler (#7215) bf0efb0, closes #7215 #7054
- compiler/watch: allow unicode characters in component names and watch paths (#8666) 9c71852, closes #8666 #8564
- core: expose all slots on $scopedSlots as functions 5d52262
- errors: sync/async error handling for lifecycle hooks and v-on handlers (#8395) 6e9fcfc, closes #8395 #6953 #7653
- functional: add scopedSlots to context in functional components (#7941) fb6aa06, closes #7941
- ssr: Add 'nonce' option to context for ssr outlet script (#8047) f036cce, closes #8047 #7479
- ssr: add custom state serializer option 4494012, closes #6614
- ssr: allow opting-out of caching by returning false in serverCacheKey ab24285, closes #8790
- ssr: ssrPrefetch option + context.rendered hook (#9017) d7a533d, closes #9017
- types: add Prop to main type declaration file (#6856) 5791072, closes #6856 #6850
- types: add types for vue-template-compiler (#7918) ced774b, closes #7918
- v-for: support iterables in v-for (#8179) d40eb9c, closes #8179
Bug Fixes
- allow _ in watch paths (element compat) 8b382b3
- scoped-slots: ensure $scopedSlots calls always return Arrays c7c13c2, closes #8056
- always use microtasks for nextTick (#8450) 850555d, closes #8450 #7109 #7546 #7707 #7834 #8109 #6566
- core: dedupe lifecycle hooks during options merge edf7df0, closes #9199
- core: fix merged twice bug when passing extended constructor to mixins (#9199) 5371617, closes #9199 #9198
- next-tick: revert 60da366 080dd97, closes #8436
- provide/inject: Merges symbol provides (#7926) 1933ee8, closes #7926
- runtime: DevTools recommendation shows for all browsers (#8638) 22ad266, closes #8638 #8634
- make transition-group key warning a tip to avoid breaking compilation d08b49f
- ssr: properly handle invalid and numeric style properties 7d9cfeb, closes #9231
- cover more cases in v-on inline return value 9432737
- ssr: should not render invalid numeric style values 17d8bcb
- ssr: should render 0 as valid value for style property with unit aef5b4e
- ensure only nromalize a scoped slot when it is present 5fb23d4
- ensure proxied normal slot uses correct key b32c4b6
- return inline invocation return value in v-on handlers 0ebb0f3, closes #7628