MCPcopy Create free account
hub / github.com/aurelia/binding / create

Method create

src/set-observation.js:30–80  ·  view source on GitHub ↗
(taskQueue, set)

Source from the content-addressed store, hash-verified

28 }
29
30 static create(taskQueue, set) {
31 let observer = new ModifySetObserver(taskQueue, set);
32
33 let proto = setProto;
34 if (proto.add !== set.add || proto.delete !== set.delete || proto.clear !== set.clear) {
35 proto = {
36 add: set.add,
37 delete: set.delete,
38 clear: set.clear
39 };
40 }
41
42 set.add = function() {
43 let type = 'add';
44 let oldSize = set.size;
45 let methodCallResult = proto.add.apply(set, arguments);
46 let hasValue = set.size === oldSize;
47 if (!hasValue) {
48 observer.addChangeRecord({
49 type: type,
50 object: set,
51 value: Array.from(set).pop()
52 });
53 }
54 return methodCallResult;
55 };
56
57 set.delete = function() {
58 let hasValue = set.has(arguments[0]);
59 let methodCallResult = proto.delete.apply(set, arguments);
60 if (hasValue) {
61 observer.addChangeRecord({
62 type: 'delete',
63 object: set,
64 value: arguments[0]
65 });
66 }
67 return methodCallResult;
68 };
69
70 set.clear = function() {
71 let methodCallResult = proto.clear.apply(set, arguments);
72 observer.addChangeRecord({
73 type: 'clear',
74 object: set
75 });
76 return methodCallResult;
77 };
78
79 return observer;
80 }
81}

Callers 9

forMethod · 0.45
constructorMethod · 0.45
parser.jsFile · 0.45
camel-case.jsFile · 0.45
_inheritsFunction · 0.45
aurelia-binding.jsFile · 0.45
ParserFunction · 0.45
_inheritsFunction · 0.45
aurelia-binding.jsFile · 0.45

Calls 1

addChangeRecordMethod · 0.80

Tested by

no test coverage detected