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": { "caniuse-lite": {
"version": "1.0.30001335", "version": "1.0.30001431",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz",
"integrity": "sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==", "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==",
"dev": true "dev": true
}, },
"cardinal": { "cardinal": {
+6 -6
View File
@@ -103,19 +103,19 @@ export class Context {
} }
export function readProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) { export function readProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) {
if (isNil(obj)) return obj
obj = toLiquid(obj) obj = toLiquid(obj)
if (isNil(obj)) return obj
if (isArray(obj) && key < 0) return obj[obj.length + +key] if (isArray(obj) && key < 0) return obj[obj.length + +key]
const jsProperty = readJSProperty(obj, key, ownPropertyOnly) const value = readJSProperty(obj, key, ownPropertyOnly)
if (jsProperty === undefined && obj instanceof Drop) return obj.liquidMethodMissing(key) if (value === undefined && obj instanceof Drop) return obj.liquidMethodMissing(key)
if (isFunction(jsProperty)) return jsProperty.call(obj) if (isFunction(value)) return value.call(obj)
if (key === 'size') return readSize(obj) if (key === 'size') return readSize(obj)
else if (key === 'first') return readFirst(obj) else if (key === 'first') return readFirst(obj)
else if (key === 'last') return readLast(obj) else if (key === 'last') return readLast(obj)
return jsProperty return value
} }
export function readJSProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) { 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] return obj[key]
} }
+1 -1
View File
@@ -153,7 +153,7 @@ export const defaultOptions: NormalizedFullOptions = {
preserveTimezones: false, preserveTimezones: false,
strictFilters: false, strictFilters: false,
strictVariables: false, strictVariables: false,
ownPropertyOnly: false, ownPropertyOnly: true,
lenientIf: false, lenientIf: false,
globals: {}, globals: {},
keepOutputType: false, keepOutputType: false,