seroval
Version:
Stringify JS values
35 lines (32 loc) • 701 B
text/typescript
import {
SYM_ASYNC_ITERATOR,
SYM_IS_CONCAT_SPREADABLE,
SYM_ITERATOR,
SYM_TO_STRING_TAG,
} from '../symbols';
export function isValidKey(key: string): boolean {
switch (key) {
case 'constructor':
case '__proto__':
case 'prototype':
case '__defineGetter__':
case '__defineSetter__':
case '__lookupGetter__':
case '__lookupSetter__':
// case 'then':
return false;
default:
return true;
}
}
export function isValidSymbol(symbol: symbol): boolean {
switch (symbol) {
case SYM_ASYNC_ITERATOR:
case SYM_IS_CONCAT_SPREADABLE:
case SYM_TO_STRING_TAG:
case SYM_ITERATOR:
return true;
default:
return false;
}
}