lsd_rails 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. data/Packages/Sheet.js/Source/SheetParser.Value.js +1 -1
  2. data/Packages/lsd/Source/Action/Clone.js +2 -12
  3. data/Packages/lsd/Source/Action/Delete.js +1 -7
  4. data/Packages/lsd/Source/Action/Display.js +7 -7
  5. data/Packages/lsd/Source/Action/Edit.js +2 -2
  6. data/Packages/lsd/Source/Action/Invoke.js +2 -2
  7. data/Packages/lsd/Source/Action/Submit.js +2 -0
  8. data/Packages/lsd/Source/Action/Toggle.js +4 -0
  9. data/Packages/lsd/Source/Action/Update.js +2 -1
  10. data/Packages/lsd/Source/Action.js +4 -5
  11. data/Packages/lsd/Source/Document.js +10 -7
  12. data/Packages/lsd/Source/LSD.js +22 -127
  13. data/Packages/lsd/Source/Layer.js +4 -4
  14. data/Packages/lsd/Source/Layout.js +1077 -259
  15. data/Packages/lsd/Source/Mixin/Animation.js +1 -1
  16. data/Packages/lsd/Source/Mixin/Choice.js +2 -2
  17. data/Packages/lsd/Source/Mixin/Command.js +26 -8
  18. data/Packages/lsd/Source/Mixin/ContentEditable.js +2 -1
  19. data/Packages/lsd/Source/{Trait → Mixin}/Date.js +21 -11
  20. data/Packages/lsd/Source/{Trait/Menu.js → Mixin/Details.js} +6 -1
  21. data/Packages/lsd/Source/Mixin/Draggable.js +1 -1
  22. data/Packages/lsd/Source/Mixin/Fieldset.js +51 -49
  23. data/Packages/lsd/Source/Mixin/Focusable.js +38 -39
  24. data/Packages/lsd/Source/Mixin/Invokable.js +13 -14
  25. data/Packages/lsd/Source/Mixin/List.js +9 -17
  26. data/Packages/lsd/Source/Mixin/Placeholder.js +2 -7
  27. data/Packages/lsd/Source/Mixin/Request.js +5 -3
  28. data/Packages/lsd/Source/Mixin/Resizable.js +3 -3
  29. data/Packages/lsd/Source/Mixin/Resource.js +1 -1
  30. data/Packages/lsd/Source/Mixin/Root.js +17 -1
  31. data/Packages/lsd/Source/Mixin/Scrollable.js +1 -1
  32. data/Packages/lsd/Source/{Trait → Mixin}/Slider.js +0 -0
  33. data/Packages/lsd/Source/Mixin/Sortable.js +2 -2
  34. data/Packages/lsd/Source/Mixin/Submittable.js +2 -1
  35. data/Packages/lsd/Source/Mixin/Target.js +11 -6
  36. data/Packages/lsd/Source/Mixin/Touchable.js +2 -2
  37. data/Packages/lsd/Source/Mixin/Unselectable.js +1 -1
  38. data/Packages/lsd/Source/Mixin/Uploader.js +11 -13
  39. data/Packages/lsd/Source/Mixin/Validity.js +35 -9
  40. data/Packages/lsd/Source/Mixin/Value.js +5 -3
  41. data/Packages/lsd/Source/Module/Accessories/Attributes.js +90 -89
  42. data/Packages/lsd/Source/Module/Accessories/Chain.js +40 -25
  43. data/Packages/lsd/Source/Module/Accessories/Element.js +59 -58
  44. data/Packages/lsd/Source/Module/Accessories/Events.js +25 -10
  45. data/Packages/lsd/Source/Module/Accessories/Options.js +11 -13
  46. data/Packages/lsd/Source/Module/Accessories/States.js +42 -5
  47. data/Packages/lsd/Source/Module/Accessories/Styles.js +1 -1
  48. data/Packages/lsd/Source/Module/Accessories/Tag.js +21 -7
  49. data/Packages/lsd/Source/Module/Ambient/Allocations.js +178 -64
  50. data/Packages/lsd/Source/Module/Ambient/DOM.js +98 -55
  51. data/Packages/lsd/Source/Module/Ambient/Expectations.js +57 -8
  52. data/Packages/lsd/Source/Module/Ambient/Interpolations.js +147 -0
  53. data/Packages/lsd/Source/Module/Ambient/Layout.js +52 -15
  54. data/Packages/lsd/Source/Module/Ambient/Proxies.js +44 -36
  55. data/Packages/lsd/Source/Module/Ambient/Relations.js +3 -1
  56. data/Packages/lsd/Source/Module/Ambient/Selectors.js +3 -3
  57. data/Packages/lsd/Source/Module/Ambient.js +2 -2
  58. data/Packages/lsd/Source/Module/Graphics/Layers.js +1 -1
  59. data/Packages/lsd/Source/Module/Graphics/Render.js +1 -1
  60. data/Packages/lsd/Source/Relation.js +19 -20
  61. data/Packages/lsd/Source/Sheet.js +4 -5
  62. data/Packages/lsd/Source/{Behavior.js → Tools/Behavior.js} +0 -0
  63. data/Packages/lsd/Source/Tools/Command.js +190 -0
  64. data/Packages/lsd/Source/Tools/Helpers.js +109 -0
  65. data/Packages/lsd/Source/Tools/Interpolation.js +351 -0
  66. data/Packages/lsd/Source/Tools/Microdata.js +75 -0
  67. data/Packages/lsd/Source/Tools/Object.js +192 -0
  68. data/Packages/lsd/Source/Tools/Position.js +208 -0
  69. data/Packages/lsd/Source/Tools/Require.js +76 -0
  70. data/Packages/lsd/Source/Type.js +2 -2
  71. data/Packages/lsd/package.yml +11 -7
  72. data/Packages/lsd-mobile/Source/Body/Dialog.js +2 -2
  73. data/Packages/lsd-mobile/Source/Input/Date.js +9 -84
  74. data/Packages/lsd-native/Source/Input/Checkbox.js +4 -4
  75. data/Packages/lsd-native/Source/Input/Date.js +46 -6
  76. data/Packages/lsd-native/Source/Input/Radio.js +1 -4
  77. data/Packages/lsd-native/Source/Input.js +5 -6
  78. data/Packages/lsd-widgets/Source/Body/Dialog.js +9 -6
  79. data/Packages/lsd-widgets/Source/Body/Page.js +1 -1
  80. data/Packages/lsd-widgets/Source/Body.js +1 -1
  81. data/Packages/lsd-widgets/Source/Button.js +1 -1
  82. data/Packages/lsd-widgets/Source/Form.js +1 -1
  83. data/Packages/lsd-widgets/Source/Input/Checkbox.js +2 -2
  84. data/Packages/lsd-widgets/Source/Input/Date.js +45 -16
  85. data/Packages/lsd-widgets/Source/Input/File.js +2 -2
  86. data/Packages/lsd-widgets/Source/Input/HTML.js +2 -2
  87. data/Packages/lsd-widgets/Source/Input/Radio.js +1 -1
  88. data/Packages/lsd-widgets/Source/Input/Range.js +2 -2
  89. data/Packages/lsd-widgets/Source/Input/Submit.js +1 -1
  90. data/Packages/lsd-widgets/Source/Input.js +2 -11
  91. data/Packages/lsd-widgets/Source/Label.js +4 -8
  92. data/Packages/lsd-widgets/Source/Menu/List.js +3 -3
  93. data/Packages/lsd-widgets/Source/Menu.js +2 -2
  94. data/Packages/lsd-widgets/Source/Progress.js +1 -1
  95. data/Packages/lsd-widgets/Source/Select.js +7 -6
  96. data/Packages/lsd-widgets/Source/Table/Calendar.js +41 -15
  97. data/Packages/lsd-widgets/Source/Table.js +7 -2
  98. data/Packages/mootools-ext/Source/Core/Class.Mixin.js +43 -38
  99. data/Packages/mootools-ext/Source/Core/Class.States.js +26 -22
  100. data/Packages/mootools-ext/Source/Element/Element.from.js +1 -1
  101. data/Packages/mootools-ext/Source/Element/Properties/Item.js +1 -2
  102. data/Packages/mootools-ext/Source/Request/Request.Statuses.js +9 -7
  103. data/Packages/mootools-ext/Source/Types/{FastArray.js → Object.Array.js} +8 -14
  104. data/Packages/mootools-ext/package.yml +1 -2
  105. data/lib/lsd.rake +28 -0
  106. metadata +15 -11
  107. data/Packages/lsd/Source/Command.js +0 -135
  108. data/Packages/lsd/Source/Interpolation.js +0 -103
  109. data/Packages/lsd/Source/Module/Ambient/Container.js +0 -56
  110. data/Packages/mootools-ext/Source/Element/Element.onDispose.js +0 -36
@@ -87,7 +87,7 @@ provides : SheetParser.Value
87
87
 
88
88
  ;(Value.comma = x(/\s*,\s*/, 'comma'))
89
89
  ;(Value.whitespace = x(/\s+/, 'whitespace'))
90
- ;(Value.operator = x(/[-+]|[\/%^~=><*\^]+/, 'operator'))
90
+ ;(Value.operator = x(/[-+]|[\/%^~=><*\^|&]+/, 'operator'))
91
91
 
92
92
  ;(Value.stringDouble = x(/"((?:[^"]|\\")*)"/)).names = ['dstring']
93
93
  ;(Value.stringSingle = x(/'((?:[^']|\\')*)'/)).names = ['sstring']
@@ -20,17 +20,7 @@ provides:
20
20
 
21
21
 
22
22
  LSD.Action.Clone = LSD.Action.build({
23
- enable: function(target, where) {
24
- var widget = LSD.Module.DOM.find(target);
25
- if (widget == target) var element = widget.element, parent = widget.parentNode;
26
- else var element = target, parent = widget;
27
- var clone = widget.layout.render(element, parent, {clone: true});
28
- switch(where) {
29
- case "before": case "after": case "top": case "bottom":
30
- break;
31
- default:
32
- where = 'after'
33
- };
34
- document.id(clone).inject(target, where);
23
+ enable: function(target, parent, before) {
24
+ return LSD.Module.DOM.clone(target, parent, before);
35
25
  }
36
26
  });
@@ -21,12 +21,6 @@ provides:
21
21
 
22
22
  LSD.Action.Delete = LSD.Action.build({
23
23
  enable: function(target) {
24
- if (!target.lsd) {
25
- var widget = LSD.Module.DOM.find(target);
26
- LSD.Module.DOM.walk(target, function(node) {
27
- widget.dispatchEvent('nodeRemoved', node);
28
- });
29
- return Element.dispose(target);
30
- } else return (target['delete'] || target.dispose).call(target);
24
+ return LSD.Module.DOM.destroy(target);
31
25
  }
32
26
  });
@@ -23,19 +23,19 @@ provides:
23
23
  LSD.Action.Display = LSD.Action.build({
24
24
  enable: function(target) {
25
25
  var widget = LSD.Module.DOM.find(target, true);
26
- if (widget && widget.show) widget.show();
27
- else if (target.setStyle) {
28
- target.setStyle('display', target.retrieve('style:display') || 'inherit');
26
+ if (widget) widget.show();
27
+ else if (target.localName) {
28
+ target.style.display = Element.retrieve(target, 'style:display') || 'inherit';
29
29
  target.removeAttribute('hidden');
30
30
  }
31
31
  },
32
32
 
33
33
  disable: function(target) {
34
34
  var widget = LSD.Module.DOM.find(target, true);
35
- if (widget && widget.hide) widget.hide();
36
- else if (target.setStyle) {
37
- target.store('style:display', target.getStyle('display'));
38
- target.setStyle('display', 'none');
35
+ if (widget) widget.hide();
36
+ else if (target.localName) {
37
+ Element.store(target, 'style:display', target.getStyle('display'));
38
+ target.style.display = 'none';
39
39
  target.setAttribute('hidden', 'hidden');
40
40
  }
41
41
  },
@@ -53,8 +53,8 @@ LSD.Widget.Form.Edit = new Class({
53
53
  'cancel': 'finish'
54
54
  }
55
55
  },
56
- states: Array.fast('editing', 'hidden'),
57
- pseudos: Array.fast('form', 'fieldset', 'resource', 'command'),
56
+ states: Array.object('editing', 'hidden'),
57
+ pseudos: Array.object('form', 'fieldset', 'resource', 'command'),
58
58
  has: {
59
59
  one: {
60
60
  submitter: {
@@ -23,8 +23,8 @@ LSD.Action.Invoke = LSD.Action.build({
23
23
  enable: function(target) {
24
24
  var widget = LSD.Module.DOM.find(target);
25
25
  this.store(target, widget);
26
- var result = widget.invoke(this.invoker);
27
- return (result == true || result == widget) ? false : result;
26
+ var result = widget.invoke.apply(widget, [this.invoker].concat(Array.slice(arguments, 1)));
27
+ return (result === true || result === false || result == widget) ? false : result;
28
28
  },
29
29
 
30
30
  disable: function(target) {
@@ -25,6 +25,8 @@ LSD.Action.Submit = LSD.Action.build({
25
25
  enable: function(target, event) {
26
26
  if (this.retrieve(target)) return;
27
27
  var args = Array.prototype.slice.call(arguments, 1);
28
+ var widget = LSD.Module.DOM.find(target, true);
29
+ if (widget) target = widget;
28
30
  if (target.lsd && !target.submit && this.invoker != target && (!event || event.type != 'click')) {
29
31
  if (target.chainPhase == -1 || (target.getCommandAction && target.getCommandAction() == 'submit'))
30
32
  return target.callChain.apply(target, args);
@@ -24,11 +24,15 @@ provides:
24
24
  LSD.Action.Toggle = LSD.Action.build({
25
25
  enable: function(target) {
26
26
  if (!target || target == this.invoker || target.element == this.invoker) return;
27
+ var widget = LSD.Module.DOM.find(target, true);
28
+ if (widget) target = widget;
27
29
  if (!target.checked) (target.check || target.click).apply(target, Array.prototype.slice.call(arguments, 1));
28
30
  },
29
31
 
30
32
  disable: function(target) {
31
33
  if (!target || target == this.invoker || target.element == this.invoker) return;
34
+ var widget = LSD.Module.DOM.find(target, true);
35
+ if (widget) target = widget;
32
36
  if (target.checked) (target.uncheck || target.click).apply(target, Array.prototype.slice.call(arguments, 1));
33
37
  },
34
38
 
@@ -32,7 +32,7 @@ LSD.Action.Update = LSD.Action.build({
32
32
  var children = LSD.slice(fragment.childNodes);
33
33
  var element = target.lsd ? target.toElement() : target;
34
34
  var container = (target.lsd || (widget.element == target && widget)) ? widget[this.options.container ? 'getWrapper' : 'toElement']() : element;
35
- var args = [container, (widget.element == element ? widget.parentNode : widget), fragment, children, content];
35
+ var args = [container, widget, fragment, children, content];
36
36
  this.options.update.apply(this, args);
37
37
  },
38
38
 
@@ -56,6 +56,7 @@ LSD.Action.Replace = LSD.Action.build({
56
56
 
57
57
  update: function(target, parent, fragment, children) {
58
58
  target.parentNode.replaceChild(fragment, target);
59
+ LSD.Module.DOM.destroy(target);
59
60
  parent.fireEvent('DOMNodeInserted', [children, target]);
60
61
  }
61
62
  });
@@ -3,7 +3,7 @@
3
3
 
4
4
  script: Action.js
5
5
 
6
- description: Action is a class that adds some feature to widget by mixing up in runtime
6
+ description: Action encapsulates a single external node manipulation with the logic to revert it
7
7
 
8
8
  license: Public domain (http://unlicense.org).
9
9
 
@@ -11,6 +11,7 @@ authors: Yaroslaff Fedin
11
11
 
12
12
  requires:
13
13
  - LSD
14
+ - LSD.Helpers
14
15
 
15
16
  provides:
16
17
  - LSD.Action
@@ -34,14 +35,12 @@ LSD.Action.initialize = function(options) {
34
35
  if (options.enabler) LSD.Action[LSD.toClassName(options.enabler)] = LSD.Action.build({
35
36
  enable: options.enable,
36
37
  disable: options.disable,
37
- getState: options.getState
38
+ getState: function() { return true; }
38
39
  })
39
40
  if (options.disabler) LSD.Action[LSD.toClassName(options.disabler)] = LSD.Action.build({
40
41
  enable: options.disable,
41
42
  disable: options.enable,
42
- getState: options.getState && function() {
43
- return !options.getState.apply(this, arguments)
44
- }.bind(this)
43
+ getState: function() { return true; }
45
44
  })
46
45
  };
47
46
 
@@ -92,16 +92,19 @@ LSD.Document = new Class({
92
92
  widget = target.uid && Element.retrieve(target, 'widget');
93
93
  var a = (LSD.toLowerCase(target.tagName) == 'a');
94
94
  if (a) {
95
- if (!widget) widget = new LSD.Widget(target, {
96
- document: this,
97
- pseudos: ['clickable', 'command']
98
- });
95
+ if (!widget) {
96
+ var parent = LSD.Module.DOM.find(target)
97
+ widget = new LSD.Widget(target, {
98
+ document: this,
99
+ pseudos: ['clickable', 'command']
100
+ });
101
+ parent.appendChild(widget, false);
102
+ }
99
103
  event.preventDefault();
100
104
  }
101
105
  if (widget && widget.pseudos.clickable) {
102
106
  event.stopPropagation();
103
- widget.click(event);
104
- break;
107
+ if (widget.click(event)) break;
105
108
  }
106
109
  };
107
110
  },
@@ -136,7 +139,7 @@ LSD.Document = new Class({
136
139
  },
137
140
 
138
141
  setBody: function(element) {
139
- if (!element) element = this.getBodyElement()
142
+ if (!element) element = this.getBodyElement();
140
143
  this.fireEvent('beforeBody', element);
141
144
  var options = {
142
145
  document: this,
@@ -15,11 +15,10 @@ requires:
15
15
  - Core/Options
16
16
  - Core/Browser
17
17
  - Core/Object
18
- - Ext/Macro
19
18
  - Ext/States
19
+ - Ext/Macro
20
20
  - Ext/Class.mixin
21
- - Ext/FastArray
22
- - Ext/Class.Mutators.Includes
21
+ - Ext/Object.Array
23
22
 
24
23
  provides:
25
24
  - LSD
@@ -27,137 +26,33 @@ provides:
27
26
  ...
28
27
  */
29
28
 
30
- if (!window.console) window.console = {};
31
- if (!window.console.log) window.console.log = function() {};
32
-
33
29
  var LSD = Object.append(new Events, {
34
30
  Events: {},
35
- Attributes: {
36
- Numeric: Array.fast('tabindex', 'width', 'height'),
37
- Boolean: Array.fast('readonly', 'disabled', 'hidden', 'checked')
38
- },
31
+ Attributes: {},
39
32
  Styles: {},
40
33
  States: {
41
- Known: {
42
- built: {enabler: 'build', disabler: 'destroy', reflect: false},
43
- attached: {enabler: 'attach', disabler: 'detach', reflect: false},
44
- hidden: {enabler: 'hide', disabler: 'show'},
45
- disabled: {enabler: 'disable', disabler: 'enable'},
46
- active: {enabler: 'activate', disabler: 'deactivate'},
47
- focused: {enabler: 'focus', disabler: 'blur'},
48
- selected: {enabler: 'select', disabler: 'unselect'},
49
- checked: {enabler: 'check', disabler: 'uncheck', toggler: 'toggle'},
50
- collapsed:{enabler: 'collapse', disabler: 'expand', toggler: 'toggle'},
51
- working: {enabler: 'busy', disabler: 'idle'},
52
- chosen: {enabler: 'choose', disabler: 'forget'},
53
- empty: {enabler: 'empty', disabler: 'fill', property: 'unfilled', initial: true},
54
- invalid: {enabler: 'invalidate', disabler: 'validate', events: {enabler: 'invalid', disabler: 'valid'}},
55
- valid: {enabler: 'validate', disabler: 'invalidate', events: {enabler: 'valid', disabler: 'invalid'}},
56
- editing: {enabler: 'edit', disabler: 'finish'}
57
- },
58
- Positive: {
59
- disabled: 'disabled',
60
- focused: 'focused'
61
- },
62
- Negative: {
63
- enabled: 'disabled',
64
- blured: 'focused'
65
- },
66
- Attributes: {
67
- disabled: 'disabled',
68
- hidden: 'hidden'
69
- },
70
- Classes: {
71
- selected: 'selected',
72
- empty: 'empty',
73
- working: 'working',
74
- focused: 'focused',
75
- editing: 'editing'
76
- }
34
+ built: {enabler: 'build', disabler: 'destroy', reflect: false},
35
+ attached: {enabler: 'attach', disabler: 'detach', reflect: false},
36
+ hidden: {enabler: 'hide', disabler: 'show'},
37
+ disabled: {enabler: 'disable', disabler: 'enable'},
38
+ active: {enabler: 'activate', disabler: 'deactivate'},
39
+ focused: {enabler: 'focus', disabler: 'blur'},
40
+ selected: {enabler: 'select', disabler: 'unselect'},
41
+ checked: {enabler: 'check', disabler: 'uncheck', toggler: 'toggle'},
42
+ collapsed:{enabler: 'collapse', disabler: 'expand', toggler: 'toggle'},
43
+ working: {enabler: 'busy', disabler: 'idle'},
44
+ chosen: {enabler: 'choose', disabler: 'forget'},
45
+ empty: {enabler: 'empty', disabler: 'fill', property: 'unfilled', initial: true},
46
+ invalid: {enabler: 'invalidate', disabler: 'unvalidate'},
47
+ valid: {enabler: 'validate', disabler: 'unvalidate'},
48
+ editing: {enabler: 'edit', disabler: 'finish'},
49
+ placeheld:{enabler: 'placehold', disabler: 'unplacehold'},
50
+ invoked: {enabler: 'invoke', disabler: 'revoke'}
77
51
  },
78
52
  Options: {},
79
53
  useNative: true
80
54
  });
81
55
 
82
- Object.append(LSD, {
83
- position: function(box, size, x, y) {
84
- var position = {x: 0, y: 0};
85
-
86
- switch (x) {
87
- case "left":
88
- position.x = 0;
89
- case "right":
90
- position.x = box.width - size.width;
91
- case "center":
92
- position.x = (box.width - size.width) / 2;
93
- }
94
- switch (y) {
95
- case "top":
96
- position.y = 0;
97
- case "bottom":
98
- position.y = box.height - size.height;
99
- case "center":
100
- position.y = (box.height- size.height) / 2;
101
- }
102
- return position;
103
- },
104
-
105
- toLowerCase: function(lowercased) {
106
- return function(string) {
107
- return (lowercased[string]) || (lowercased[string] = string.toLowerCase())
108
- }
109
- }(LSD.lowercased = {}),
110
-
111
- capitalize: function(capitalized) {
112
- return function(string) {
113
- return (capitalized[string]) || (capitalized[string] = string.capitalize())
114
- }
115
- }(LSD.capitalized = {}),
116
-
117
- toClassName: function(classnamed) {
118
- return function(string) {
119
- return (classnamed[string]) || (classnamed[string] = string.replace(/(^|-)([a-z])/g, function(a, b, c) { return (b ? '.' : '') + c.toUpperCase()}))
120
- }
121
- }(LSD.classnamed = {}),
122
-
123
- uid: function(object) {
124
- if (object.lsd) return object.lsd;
125
- if (object.localName) return $uid(object);
126
- return (object.lsd = ++LSD.UID);
127
- },
128
-
129
- UID: 0,
130
-
131
- slice: (Browser.ie ? function(list, start) {
132
- for (var i = start || 0, j = list.length, ary = []; i < j; i++) ary.push(list[i]);
133
- return ary;
134
- } : function(list, start) {
135
- return Array.prototype.slice.call(list, start || 0);
136
- }),
137
-
138
- log: function() {
139
- console.log.apply(console, arguments);
140
- },
141
-
142
- error: function() {
143
- (console.error || console.log).apply(console, arguments);
144
- },
145
-
146
- warn: function() {
147
- (console.warn || console.log).apply(console, arguments);
148
- },
149
-
150
- info: function() {
151
- (console.info || console.log).apply(console, arguments);
152
- }
153
- });
154
-
155
56
  States.get = function(name) {
156
- return LSD.States.Known[name];
157
- };
158
-
159
- (function(toString) {
160
- Type.isEnumerable = function(item){
161
- return (item != null && typeof item.length == 'number' && toString.call(item) != '[object Function]' && !item.localName && !item.nodeType);
162
- };
163
- })(Object.prototype.toString);
57
+ return LSD.States[name];
58
+ };
@@ -63,7 +63,7 @@ LSD.Layer.prototype = {
63
63
  }
64
64
  layer.commands = commands;
65
65
  widget.shapes[this.name] = layer;
66
- for (command in commands) {
66
+ for (var command in commands) {
67
67
  var value = commands[command];
68
68
  if (layer[command] && command != 'move') {
69
69
  if (!value || !previous || !Object.equals(previous[command], value)) layer[command][value && value.push ? 'apply' : 'call'](layer, value);
@@ -130,9 +130,9 @@ var merge = function(value, old) {
130
130
  return value;
131
131
  }
132
132
 
133
- var Accumulate = LSD.Layer.accumulated = new FastArray('translate', 'radius');
134
- var Inherit = LSD.Layer.inherited = new FastArray('inside', 'outside')
135
- var Merge = LSD.Layer.merged = new FastArray('size')
133
+ var Accumulate = LSD.Layer.accumulated = new Object.Array('translate', 'radius');
134
+ var Inherit = LSD.Layer.inherited = new Object.Array('inside', 'outside')
135
+ var Merge = LSD.Layer.merged = new Object.Array('size')
136
136
 
137
137
  var Property = SheetParser.Property;
138
138
  var Styles = LSD.Styles;