refactor: change ownPropertyOnly default value to true

BREAKING CHANGE: `ownPropertyOnly` default value changed to `true`
This commit is contained in:
Jun Yang
2022-11-27 14:04:01 +08:00
parent ffefd91fbc
commit 7eb621601c
3 changed files with 10 additions and 10 deletions
+3 -3
View File
@@ -2586,9 +2586,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001335",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz",
"integrity": "sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==",
"version": "1.0.30001431",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
"integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==",
"dev": true
},
"cardinal": {
+6 -6
View File
@@ -103,19 +103,19 @@ export class Context {
}
export function readProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) {
if (isNil(obj)) return obj
obj = toLiquid(obj)
if (isNil(obj)) return obj
if (isArray(obj) && key < 0) return obj[obj.length + +key]
const jsProperty = readJSProperty(obj, key, ownPropertyOnly)
if (jsProperty === undefined && obj instanceof Drop) return obj.liquidMethodMissing(key)
if (isFunction(jsProperty)) return jsProperty.call(obj)
const value = readJSProperty(obj, key, ownPropertyOnly)
if (value === undefined && obj instanceof Drop) return obj.liquidMethodMissing(key)
if (isFunction(value)) return value.call(obj)
if (key === 'size') return readSize(obj)
else if (key === 'first') return readFirst(obj)
else if (key === 'last') return readLast(obj)
return jsProperty
return value
}
export function readJSProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) {
if (ownPropertyOnly && !Object.hasOwnProperty.call(obj, key)) return undefined
if (ownPropertyOnly && !Object.hasOwnProperty.call(obj, key) && !(obj instanceof Drop)) return undefined
return obj[key]
}
+1 -1
View File
@@ -153,7 +153,7 @@ export const defaultOptions: NormalizedFullOptions = {
preserveTimezones: false,
strictFilters: false,
strictVariables: false,
ownPropertyOnly: false,
ownPropertyOnly: true,
lenientIf: false,
globals: {},
keepOutputType: false,