methods method
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,
};
}