ende 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/assets/javascripts/aura/extensions/devise.js.coffee +0 -2
- data/lib/assets/javascripts/aura/extensions/platform.js.coffee +3 -0
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +17 -1
- data/lib/assets/javascripts/aura/extensions/routes.js.coffee +8 -7
- data/lib/assets/javascripts/aura/extensions/states.js.coffee +13 -1
- data/lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee +4 -2
- data/lib/assets/javascripts/config/load_components.js.coffee +19 -12
- data/lib/assets/javascripts/ende.js.coffee +33 -12
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/build.css +111 -0
- data/vendor/assets/components/ende_build.js +160 -41
- data/vendor/components/indefinido-indemma/build/development.js +3 -118
- data/vendor/components/indefinido-indemma/build/release.js +39 -4170
- data/vendor/components/indefinido-indemma/build/test.js +3 -118
- data/vendor/components/indefinido-indemma/lib/record/associable.js +10 -2
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +26 -15
- data/vendor/components/indefinido-indemma/lib/record.js +3 -1
- data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +15 -1
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +37 -12
- data/vendor/components/indefinido-indemma/src/lib/record.coffee +3 -1
- data/vendor/components/indefinido-observable/.gitignore +15 -0
- data/vendor/components/indefinido-observable/.ruby-gemset +1 -0
- data/vendor/components/indefinido-observable/.ruby-version +1 -0
- data/vendor/components/indefinido-observable/Gemfile +13 -0
- data/vendor/components/indefinido-observable/Guardfile +39 -0
- data/vendor/components/indefinido-observable/History.md +0 -0
- data/vendor/components/indefinido-observable/Readme.md +116 -0
- data/vendor/components/indefinido-observable/build/build.js +14798 -0
- data/vendor/components/indefinido-observable/build/development.js +339 -0
- data/vendor/components/indefinido-observable/build/release.js +14937 -0
- data/vendor/components/indefinido-observable/build/test.js +339 -0
- data/vendor/components/indefinido-observable/component.json +5 -1
- data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +46 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +1 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +132 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +1270 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +60 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +1060 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +12 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +76 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +94 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +37 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +40 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +124 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +32 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +19 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +25 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +49 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +20 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +102 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +35 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +108 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +316 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +48 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +51 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +54 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +26 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +44 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +45 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +79 -0
- data/vendor/components/indefinido-observable/components/component-jquery/component.json +14 -0
- data/vendor/components/indefinido-observable/components/component-jquery/index.js +9601 -0
- data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +11 -0
- data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +13 -0
- data/vendor/components/indefinido-observable/karma.conf.js +92 -0
- data/vendor/components/indefinido-observable/lib/adapters/rivets.js +3 -1
- data/vendor/components/indefinido-observable/lib/observable.js +47 -13
- data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +126 -0
- data/vendor/components/indefinido-observable/spec/observable_spec.js +92 -0
- data/vendor/components/indefinido-observable/spec/spec_helper.js +8 -0
- data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +63 -0
- data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +15 -0
- data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +132 -0
- data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +85 -0
- data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +5 -0
- data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +59 -0
- data/vendor/components/indefinido-observable/vendor/shims/accessors.js +71 -9
- data/vendor/components/indefinido-observable/vendor/spec/boot.js +104 -0
- data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +2054 -0
- metadata +58 -2
@@ -18458,7 +18458,9 @@ this.model = (function() {
|
|
18458
18458
|
data.route || (data.route = this.route);
|
18459
18459
|
data.nested_attributes = this.nested_attributes || [];
|
18460
18460
|
after_initialize = (data.after_initialize || []).concat(this.record.after_initialize);
|
18461
|
-
creation = extend(Object.create(data
|
18461
|
+
creation = extend(Object.create(data, {
|
18462
|
+
_shim: {}
|
18463
|
+
}), this.record, creation, {
|
18462
18464
|
after_initialize: after_initialize
|
18463
18465
|
});
|
18464
18466
|
_ref = this.record.before_initialize;
|
@@ -18653,11 +18655,15 @@ subscribers = {
|
|
18653
18655
|
modifiers = {
|
18654
18656
|
belongs_to: {
|
18655
18657
|
associated_loader: function() {
|
18656
|
-
var association_name,
|
18658
|
+
var association_name, definition, temporary_observed,
|
18657
18659
|
_this = this;
|
18658
18660
|
|
18659
18661
|
association_name = this.resource.toString();
|
18660
|
-
|
18662
|
+
if (this.owner.observed == null) {
|
18663
|
+
this.owner.observed = {};
|
18664
|
+
temporary_observed = true;
|
18665
|
+
}
|
18666
|
+
definition = Object.defineProperty(this.owner, association_name, {
|
18661
18667
|
set: function(associated) {
|
18662
18668
|
return this.observed[association_name] = associated;
|
18663
18669
|
},
|
@@ -18690,6 +18696,10 @@ modifiers = {
|
|
18690
18696
|
configurable: true,
|
18691
18697
|
enumerable: true
|
18692
18698
|
});
|
18699
|
+
if (temporary_observed) {
|
18700
|
+
delete this.owner.observed;
|
18701
|
+
}
|
18702
|
+
return definition;
|
18693
18703
|
}
|
18694
18704
|
}
|
18695
18705
|
};
|
@@ -19511,14 +19521,26 @@ restful = {
|
|
19511
19521
|
return this.saving = false;
|
19512
19522
|
},
|
19513
19523
|
toString: function() {
|
19514
|
-
var serialized;
|
19524
|
+
var e, name, property, serialized;
|
19515
19525
|
|
19516
19526
|
serialized = {};
|
19517
19527
|
serialized[this.resource] = this.json();
|
19518
|
-
|
19528
|
+
try {
|
19529
|
+
return JSON.stringify(serialized);
|
19530
|
+
} catch (_error) {
|
19531
|
+
e = _error;
|
19532
|
+
console.warn("restfulable.toString: Failed to stringify record: " + e.message + ". retrying...");
|
19533
|
+
for (name in serialized) {
|
19534
|
+
property = serialized[name];
|
19535
|
+
if (typeof property === 'object') {
|
19536
|
+
delete serialized[name];
|
19537
|
+
}
|
19538
|
+
}
|
19539
|
+
return JSON.stringify(serialized);
|
19540
|
+
}
|
19519
19541
|
},
|
19520
19542
|
json: function(methods) {
|
19521
|
-
var
|
19543
|
+
var definition, json, name, nested, value;
|
19522
19544
|
|
19523
19545
|
if (methods == null) {
|
19524
19546
|
methods = {};
|
@@ -19526,10 +19548,11 @@ restful = {
|
|
19526
19548
|
json = {};
|
19527
19549
|
definition = model[this.resource.toString()];
|
19528
19550
|
for (name in this) {
|
19529
|
-
if (
|
19551
|
+
if (observable.ignores.indexOf(name) !== -1) {
|
19530
19552
|
continue;
|
19531
19553
|
}
|
19532
|
-
|
19554
|
+
nested = this.nested_attributes.indexOf(name) !== -1;
|
19555
|
+
if (!nested && (definition.belongs_to.indexOf(name) !== -1 || definition.has_one.indexOf(name) !== -1)) {
|
19533
19556
|
continue;
|
19534
19557
|
}
|
19535
19558
|
value = this[name];
|
@@ -19540,22 +19563,20 @@ restful = {
|
|
19540
19563
|
continue;
|
19541
19564
|
}
|
19542
19565
|
if (type(value) === 'object') {
|
19543
|
-
if (
|
19544
|
-
json[name] = value.
|
19545
|
-
} else {
|
19546
|
-
|
19547
|
-
|
19548
|
-
|
19549
|
-
|
19550
|
-
json["" + name + "_attributes"] = value.json(methods[name]);
|
19551
|
-
}
|
19566
|
+
if (nested) {
|
19567
|
+
json["" + name + "_attributes"] = value.json(methods[name]);
|
19568
|
+
} else if ((value.toJSON != null) || (value.json != null)) {
|
19569
|
+
if (value.json != null) {
|
19570
|
+
json[name] = value.json(methods[name]);
|
19571
|
+
} else {
|
19572
|
+
json[name] = value.toJSON(methods[name]);
|
19552
19573
|
}
|
19553
19574
|
}
|
19554
19575
|
} else {
|
19555
19576
|
json[name] = value;
|
19556
19577
|
}
|
19557
19578
|
}
|
19558
|
-
observable.unobserve(json);
|
19579
|
+
json = observable.unobserve(json);
|
19559
19580
|
delete json.dirty;
|
19560
19581
|
delete json.resource;
|
19561
19582
|
delete json.route;
|
@@ -24801,11 +24822,12 @@ if (!Array.prototype.indexOf) require('../vendor/shims/array.indexOf');
|
|
24801
24822
|
|
24802
24823
|
// Object.defineProperty (for ie5+)
|
24803
24824
|
if (typeof require != 'undefined') {
|
24804
|
-
require('../vendor/shims/accessors.js');
|
24805
|
-
|
24806
24825
|
// __lookup*__ and __define*__ for browsers with defineProperty support
|
24807
24826
|
// TODO Figure out why gives an infinity loop
|
24808
24827
|
require('../vendor/shims/accessors-legacy.js');
|
24828
|
+
|
24829
|
+
// Creates Object.defineProperty
|
24830
|
+
require('../vendor/shims/accessors.js');
|
24809
24831
|
}
|
24810
24832
|
|
24811
24833
|
// Require Dependencies
|
@@ -24882,9 +24904,10 @@ mixin = {
|
|
24882
24904
|
if (requiresDomElement) {
|
24883
24905
|
|
24884
24906
|
observable = function (object) {
|
24907
|
+
var fix;
|
24885
24908
|
|
24886
24909
|
// observable() or observable(object)
|
24887
|
-
|
24910
|
+
if (this.document && this.location) {
|
24888
24911
|
if (!object) {
|
24889
24912
|
object = {};
|
24890
24913
|
}
|
@@ -24899,15 +24922,28 @@ if (requiresDomElement) {
|
|
24899
24922
|
}
|
24900
24923
|
}
|
24901
24924
|
|
24925
|
+
// TODO better documentation
|
24902
24926
|
if (!jQuery.isReady) throw new Error('observable.call: For compatibility reasons, observable can only be called when dom is loaded.');
|
24903
|
-
var fix = document.createElement('fix');
|
24904
24927
|
|
24905
|
-
if
|
24906
|
-
|
24928
|
+
// Create dom element if object isn't one
|
24929
|
+
if (!(typeof object.nodeName === 'string')) {
|
24930
|
+
fix = document.createElement('fix');
|
24907
24931
|
|
24908
|
-
|
24932
|
+
if (!jQuery.isReady) $(function () {document.body.appendChild(fix);});
|
24933
|
+
else document.body.appendChild(fix);
|
24934
|
+
|
24935
|
+
// Replace object with dom node
|
24936
|
+
object = fix;
|
24937
|
+
}
|
24909
24938
|
|
24910
|
-
|
24939
|
+
// Observe element if it is not observed
|
24940
|
+
// TODO remove jquery dependency
|
24941
|
+
if (!object.observed) {
|
24942
|
+
generator.observable_for(object);
|
24943
|
+
object = $.extend(object, mixin);
|
24944
|
+
}
|
24945
|
+
|
24946
|
+
return object;
|
24911
24947
|
};
|
24912
24948
|
|
24913
24949
|
var ignores = document.createElement('fix'), fix_ignores = [], property;
|
@@ -24945,9 +24981,8 @@ if (requiresDomElement) {
|
|
24945
24981
|
observable.ignores = [];
|
24946
24982
|
}
|
24947
24983
|
|
24948
|
-
|
24949
24984
|
observable.unobserve = function (object) {
|
24950
|
-
var name, value, subname;
|
24985
|
+
var name, value, subname, unobserved = {};
|
24951
24986
|
|
24952
24987
|
// TODO remove root setter and root getter and callbacks from
|
24953
24988
|
// callback thread
|
@@ -24960,6 +24995,7 @@ observable.unobserve = function (object) {
|
|
24960
24995
|
// Remove array properties overrides
|
24961
24996
|
for (name in object) {
|
24962
24997
|
value = object[name];
|
24998
|
+
|
24963
24999
|
if ($.type(value) == 'array') {
|
24964
25000
|
delete value.thread;
|
24965
25001
|
delete value.object;
|
@@ -24971,8 +25007,16 @@ observable.unobserve = function (object) {
|
|
24971
25007
|
}
|
24972
25008
|
}
|
24973
25009
|
|
25010
|
+
for (name in object) {
|
25011
|
+
// TODO put Array.indexOf as a dependency
|
25012
|
+
if (observable.ignores && observable.ignores.indexOf(name) == -1) {
|
25013
|
+
unobserved[name] = object[name];
|
25014
|
+
}
|
25015
|
+
}
|
25016
|
+
|
24974
25017
|
delete object.observed;
|
24975
|
-
|
25018
|
+
|
25019
|
+
return unobserved;
|
24976
25020
|
};
|
24977
25021
|
|
24978
25022
|
check = function (keypath, value) {
|
@@ -24984,7 +25028,8 @@ check = function (keypath, value) {
|
|
24984
25028
|
};
|
24985
25029
|
|
24986
25030
|
generator = {
|
24987
|
-
|
25031
|
+
// TODO pass object as parameter
|
25032
|
+
observe: function (keypath, callback) {
|
24988
25033
|
return Object.defineProperty(this, keypath, {
|
24989
25034
|
get: generator.getter.call(this, keypath),
|
24990
25035
|
set: generator.setter.call(this, keypath, callback),
|
@@ -24993,11 +25038,21 @@ generator = {
|
|
24993
25038
|
},
|
24994
25039
|
|
24995
25040
|
observable_for: function (object) {
|
24996
|
-
|
25041
|
+
Object.defineProperty(object, 'observed', {
|
24997
25042
|
configurable: true,
|
24998
25043
|
enumerable: false,
|
24999
25044
|
value: {}
|
25000
25045
|
});
|
25046
|
+
|
25047
|
+
// TODO call the current object.toJSON after this method
|
25048
|
+
return Object.defineProperty(object, 'toJSON', {
|
25049
|
+
enumerable: false,
|
25050
|
+
value: function () {
|
25051
|
+
// TODO remove underscore dependency
|
25052
|
+
return observable.unobserve(_.omit(this, observable.ignores));
|
25053
|
+
// old_to_json()
|
25054
|
+
}
|
25055
|
+
});
|
25001
25056
|
},
|
25002
25057
|
|
25003
25058
|
// TODO improve readability
|
@@ -25146,7 +25201,9 @@ exports.adapter = {
|
|
25146
25201
|
if (record == null) {
|
25147
25202
|
throw new TypeError('observable.adapters.rivets.subscribe: No record provided for subscription');
|
25148
25203
|
}
|
25149
|
-
|
25204
|
+
if (attribute_path) {
|
25205
|
+
return record.subscribe(attribute_path, callback);
|
25206
|
+
}
|
25150
25207
|
},
|
25151
25208
|
unsubscribe: function(record, attribute_path, callback) {
|
25152
25209
|
if (record == null) {
|
@@ -25242,7 +25299,10 @@ require.register("indefinido-observable/vendor/shims/accessors.js", function(exp
|
|
25242
25299
|
changed_value = object[property];
|
25243
25300
|
descriptor.set.call(object, changed_value);
|
25244
25301
|
|
25245
|
-
// Restore get function if
|
25302
|
+
// Restore get function if:
|
25303
|
+
// it was mentioned on definition
|
25304
|
+
// there's no falsey value, in that case we just need to return falsey value
|
25305
|
+
// current toString is not the getter, to prevent further unecessary redefinitions
|
25246
25306
|
if (descriptor.get && descriptor.value && descriptor.value.toString != descriptor.bound_getter) {
|
25247
25307
|
// TODO if (descriptor.get + '' === 'undefined') descriptor.get = ''; // Handle undefined getter
|
25248
25308
|
descriptor.value.toString = descriptor.bound_getter
|
@@ -25260,33 +25320,37 @@ require.register("indefinido-observable/vendor/shims/accessors.js", function(exp
|
|
25260
25320
|
}
|
25261
25321
|
|
25262
25322
|
return setter;
|
25263
|
-
}
|
25323
|
+
};
|
25264
25324
|
|
25265
25325
|
// Shim define property with apropriated fail cases exceptions
|
25266
25326
|
Object.defineProperty = function (obj, prop, descriptor) {
|
25267
25327
|
var fix;
|
25268
25328
|
|
25269
|
-
if (!
|
25329
|
+
if (!prop)
|
25270
25330
|
|
25271
|
-
if (
|
25331
|
+
if (descriptor.set) {
|
25332
|
+
if (!obj.attachEvent) throw new TypeError('Object.defineProperty: First parameter must be a dom element. When descriptor has \'set\' property.');
|
25272
25333
|
|
25273
|
-
|
25334
|
+
if (!fix && !inDocument(obj)) throw new TypeError('Object.defineProperty: Dom element must be attached in document.');
|
25335
|
+
}
|
25274
25336
|
|
25275
|
-
if (
|
25337
|
+
if (!descriptor) throw new TypeError('Object.defineProperty (object, property, descriptor): Descriptor must be an object, was \'' + descriptor + '\'.');
|
25276
25338
|
|
25277
25339
|
// Store current value in descriptor
|
25340
|
+
// TODO only try to set descriptor value if it was passed as parameter
|
25278
25341
|
descriptor.value = descriptor.value || (descriptor.get && descriptor.get.call(obj)) || obj[prop];
|
25279
25342
|
|
25280
|
-
if (descriptor.
|
25343
|
+
if (descriptor.set) {
|
25281
25344
|
// Detach old listeners if any
|
25282
25345
|
detach = true;
|
25283
25346
|
obj[prop] = 'detaching';
|
25284
25347
|
detach = false;
|
25285
25348
|
|
25286
25349
|
if (descriptor.get) {
|
25350
|
+
// TODO remove jquery dependency
|
25287
25351
|
descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
|
25288
25352
|
|
25289
|
-
//
|
25353
|
+
// Why? we only bind the getter when we have a non falsey value
|
25290
25354
|
if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
|
25291
25355
|
|
25292
25356
|
// Although its not allowed for convention to have getters
|
@@ -25297,6 +25361,16 @@ require.register("indefinido-observable/vendor/shims/accessors.js", function(exp
|
|
25297
25361
|
|
25298
25362
|
(fix || obj).attachEvent("onpropertychange", generate_setter(obj, prop, descriptor));
|
25299
25363
|
|
25364
|
+
} else if (descriptor.get) {
|
25365
|
+
descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
|
25366
|
+
|
25367
|
+
// Why? we only bind the getter when we have a non falsey value
|
25368
|
+
if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
|
25369
|
+
|
25370
|
+
// Although its not allowed for convention to have getters
|
25371
|
+
// and setters with the descriptor value, here we just reuse
|
25372
|
+
// the descriptor stored value
|
25373
|
+
obj[prop] = descriptor.value;
|
25300
25374
|
} else {
|
25301
25375
|
obj[prop] = descriptor.value;
|
25302
25376
|
}
|
@@ -25318,7 +25392,52 @@ require.register("indefinido-observable/vendor/shims/accessors.js", function(exp
|
|
25318
25392
|
}
|
25319
25393
|
}
|
25320
25394
|
};
|
25321
|
-
|
25395
|
+
|
25396
|
+
ObjectCreate = Object.create;
|
25397
|
+
baseElement = document.createElement('fix');
|
25398
|
+
|
25399
|
+
Object.create = function (prototype, properties) {
|
25400
|
+
var complexDescriptor, fix, descriptor, name;
|
25401
|
+
|
25402
|
+
for (name in properties) {
|
25403
|
+
descriptor = properties[name]
|
25404
|
+
if (descriptor instanceof Object) {
|
25405
|
+
complexDescriptor = !!(descriptor.get || descriptor.set)
|
25406
|
+
|
25407
|
+
if (complexDescriptor) {
|
25408
|
+
break;
|
25409
|
+
}
|
25410
|
+
}
|
25411
|
+
}
|
25412
|
+
|
25413
|
+
if (complexDescriptor || prototype.nodeName === 'fix' || properties && properties._shim) {
|
25414
|
+
properties && delete properties._shim;
|
25415
|
+
|
25416
|
+
if (typeof object != 'function') {
|
25417
|
+
fix = document.createElement('fix');
|
25418
|
+
document.appendChild(fix);
|
25419
|
+
|
25420
|
+
// Copy over prototype properties
|
25421
|
+
for (name in prototype) {
|
25422
|
+
try {
|
25423
|
+
if (name in baseElement) continue;
|
25424
|
+
fix[name] = prototype[name];
|
25425
|
+
} catch (e) {
|
25426
|
+
console.warn("Object.create: Invalid shimmed property: " + name + ", with error " + e);
|
25427
|
+
}
|
25428
|
+
}
|
25429
|
+
|
25430
|
+
Object.defineProperties(fix, properties);
|
25431
|
+
} else {
|
25432
|
+
throw new TypeError('Functions with complex descriptors not implemented yet');
|
25433
|
+
}
|
25434
|
+
return fix;
|
25435
|
+
} else {
|
25436
|
+
return ObjectCreate(prototype, properties)
|
25437
|
+
}
|
25438
|
+
}
|
25439
|
+
};
|
25440
|
+
|
25322
25441
|
|
25323
25442
|
/* TODO Use define Property, and only define if
|
25324
25443
|
non-enumerable properties are allowed
|