diff --git a/src/value.ts b/src/value.ts index 6fb8653..cd482f8 100644 --- a/src/value.ts +++ b/src/value.ts @@ -20,7 +20,7 @@ export type Value = named: boolean, value: '' } - | { type: 'native_function', fn: NativeFunction, value: '' } + | { type: 'native', fn: NativeFunction, value: '' } export type Dict = Map @@ -40,10 +40,10 @@ export function toValue(v: any): Value /* throws */ { if (v && typeof v === 'object' && 'type' in v && 'value' in v) return v as Value - if (Array.isArray(v)) + if (Array.isArray(v)) return { type: 'array', value: v.map(toValue) } - if (v instanceof RegExp) + if (v instanceof RegExp) return { type: 'regex', value: v } switch (typeof v) { @@ -104,8 +104,8 @@ export function toString(v: Value): string { return 'null' case 'function': return '' - case 'native_function': - return '' + case 'native': + return '' case 'array': return `[${v.value.map(toString).join(', ')}]` case 'dict': { @@ -126,9 +126,7 @@ export function isEqual(a: Value, b: Value): boolean { case 'null': return true case 'boolean': - return a.value === b.value case 'number': - return a.value === b.value case 'string': return a.value === b.value case 'array': { @@ -149,9 +147,8 @@ export function isEqual(a: Value, b: Value): boolean { return String(a.value) === String(b.value) } case 'function': + case 'native': return false // functions never equal - case 'native_function': - return false // native functions never equal default: return false } @@ -174,9 +171,8 @@ export function fromValue(v: Value): any { case 'regex': return v.value case 'function': + case 'native': return '' - case 'native_function': - return '' } }