methods method

  1. @override
Map<String, Function> methods()
override

Implementation

@override
Map<String, Function> methods() {
  return {
    'init': () => {},
    'keys': (dynamic value) =>
        (value is Map) ? value.keys.toList() : (value == null ? [] : null),
    'values': (dynamic value) =>
        (value is Map) ? value.values.toList() : (value == null ? [] : null),
    'entries': (dynamic value) =>
        (value is Map) ? value.entries.toList() : (value == null ? [] : null),
    'hasOwnProperty': (dynamic value, String key) =>
        (value is Map) ? value.containsKey(key) : false,
    'getPropertyNames': (dynamic value) =>
        (value is Map) ? value.keys.toList() : (value == null ? [] : null),
    'toString': (dynamic value) => value.toString(),
    'toJSON': (dynamic value) => (value is Map || value is List)
        ? jsonEncode(value)
        : jsonEncode({'value': value}),
    'defineProperty': (dynamic value, String key, dynamic property) {
      if (value is Map) {
        value[key] = property;
      }
      return value;
    },
    'deleteProperty': (dynamic value, String key) =>
        (value is Map) ? value.remove(key) : null,
    'has': (dynamic value, String key) =>
        (value is Map) ? value.containsKey(key) : false,
    'isPrototypeOf': (dynamic proto, dynamic value) =>
        value is InvokableObject && proto is InvokableObject
            ? value.runtimeType == proto.runtimeType
            : false,
    'propertyIsEnumerable': (dynamic value, String key) =>
        (value is Map) ? value.keys.contains(key) : false,
  };
}