Skip to content

Commit e76e648

Browse files
committed
refactor: avoid using Object.assign in SSR code for basic renderer compat in other environments
1 parent ef358fe commit e76e648

File tree

5 files changed

+12
-9
lines changed

5 files changed

+12
-9
lines changed

Diff for: src/platforms/web/entry-server-renderer.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
process.env.VUE_ENV = 'server'
44

5+
import { extend } from 'shared/util'
56
import modules from './server/modules/index'
67
import baseDirectives from './server/directives/index'
78
import { isUnaryTag, canBeLeftOpenTag } from './compiler/util'
@@ -13,13 +14,13 @@ export function createRenderer (options?: Object = {}): {
1314
renderToString: Function,
1415
renderToStream: Function
1516
} {
16-
return _createRenderer(Object.assign({}, options, {
17+
return _createRenderer(extend(extend({}, options), {
1718
isUnaryTag,
1819
canBeLeftOpenTag,
1920
modules,
2021
// user can provide server-side implementations for custom directives
2122
// when creating the renderer.
22-
directives: Object.assign(baseDirectives, options.directives)
23+
directives: extend(baseDirectives, options.directives)
2324
}))
2425
}
2526

Diff for: src/platforms/web/server/modules/attrs.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import { escape } from '../util'
44

55
import {
66
isDef,
7-
isUndef
7+
isUndef,
8+
extend
89
} from 'shared/util'
910

1011
import {
@@ -22,7 +23,7 @@ export default function renderAttrs (node: VNodeWithData): string {
2223
let parent = node.parent
2324
while (isDef(parent)) {
2425
if (isDef(parent.data) && isDef(parent.data.attrs)) {
25-
attrs = Object.assign({}, attrs, parent.data.attrs)
26+
attrs = extend(extend({}, attrs), parent.data.attrs)
2627
}
2728
parent = parent.parent
2829
}

Diff for: src/platforms/web/server/modules/dom-props.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import VNode from 'core/vdom/vnode'
44
import { renderAttr } from './attrs'
5-
import { isDef, isUndef } from 'shared/util'
5+
import { isDef, isUndef, extend } from 'shared/util'
66
import { propsToAttrMap, isRenderableAttr } from '../util'
77

88
export default function renderDOMProps (node: VNodeWithData): string {
@@ -12,7 +12,7 @@ export default function renderDOMProps (node: VNodeWithData): string {
1212
let parent = node.parent
1313
while (isDef(parent)) {
1414
if (parent.data && parent.data.domProps) {
15-
props = Object.assign({}, props, parent.data.domProps)
15+
props = extend(extend({}, props), parent.data.domProps)
1616
}
1717
parent = parent.parent
1818
}

Diff for: src/server/optimizing-compiler/runtime-helpers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function installSSRHelpers (vm: Component) {
2323
while (Ctor.super) {
2424
Ctor = Ctor.super
2525
}
26-
Object.assign(Ctor.prototype, {
26+
extend(Ctor.prototype, {
2727
_ssrEscape: escape,
2828
_ssrNode: renderStringNode,
2929
_ssrList: renderStringList,

Diff for: src/server/render.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import {
44
isDef,
55
isUndef,
6-
isTrue
6+
isTrue,
7+
extend
78
} from 'shared/util'
89

910
import { escape } from 'web/server/util'
@@ -29,7 +30,7 @@ const normalizeRender = vm => {
2930
const { render, template, _scopeId } = vm.$options
3031
if (isUndef(render)) {
3132
if (template) {
32-
Object.assign(vm.$options, ssrCompileToFunctions(template, {
33+
extend(vm.$options, ssrCompileToFunctions(template, {
3334
scopeId: _scopeId
3435
}))
3536
} else {

0 commit comments

Comments
 (0)