pas2js: rtl.js: set functions: remove hasOwnProperty - other properties are not enumerable, added rtl.checkMethodCall

git-svn-id: trunk@37999 -
This commit is contained in:
Mattias Gaertner 2018-01-18 21:43:47 +00:00
parent 5bccc69f6a
commit b54ca867b1

View File

@ -340,14 +340,31 @@ var rtl = {
EInvalidCast: null,
raiseEInvalidCast: function(){
if (rtl.EInvalidCast){
if (rtl.EInvalidCast.Create){
throw rtl.EInvalidCast.$create("Create");
} else {
throw rtl.EInvalidCast.$create("create");
}
} else {
throw "invalid type cast";
}
},
as: function(instance,type){
if(rtl.is(instance,type)) return instance;
throw rtl.EInvalidCast.$create("create");
if((instance === null) || rtl.is(instance,type)) return instance;
rtl.raiseEInvalidCast();
},
asExt: function(instance,type){
if(rtl.isExt(instance,type)) return instance;
throw rtl.EInvalidCast.$create("create");
if((instance === null) || rtl.isExt(instance,type)) return instance;
rtl.raiseEInvalidCast();
},
checkMethodCall: function(obj,type){
if (rtl.isObject(obj) && rtl.is(obj,type)) return;
rtl.raiseEInvalidCast();
},
length: function(arr){
@ -459,7 +476,7 @@ var rtl = {
cloneSet: function(s){
var r = {};
for (var key in s) if (s.hasOwnProperty(key)) r[key]=true;
for (var key in s) r[key]=true;
return r;
},
@ -482,37 +499,37 @@ var rtl = {
diffSet: function(s,t){
var r = {};
for (var key in s) if (s.hasOwnProperty(key) && !t[key]) r[key]=true;
for (var key in s) if (!t[key]) r[key]=true;
delete r.$shared;
return r;
},
unionSet: function(s,t){
var r = {};
for (var key in s) if (s.hasOwnProperty(key)) r[key]=true;
for (var key in t) if (t.hasOwnProperty(key)) r[key]=true;
for (var key in s) r[key]=true;
for (var key in t) r[key]=true;
delete r.$shared;
return r;
},
intersectSet: function(s,t){
var r = {};
for (var key in s) if (s.hasOwnProperty(key) && t[key]) r[key]=true;
for (var key in s) if (t[key]) r[key]=true;
delete r.$shared;
return r;
},
symDiffSet: function(s,t){
var r = {};
for (var key in s) if (s.hasOwnProperty(key) && !t[key]) r[key]=true;
for (var key in t) if (t.hasOwnProperty(key) && !s[key]) r[key]=true;
for (var key in s) if (!t[key]) r[key]=true;
for (var key in t) if (!s[key]) r[key]=true;
delete r.$shared;
return r;
},
eqSet: function(s,t){
for (var key in s) if (s.hasOwnProperty(key) && !t[key] && (key!='$shared')) return false;
for (var key in t) if (t.hasOwnProperty(key) && !s[key] && (key!='$shared')) return false;
for (var key in s) if (!t[key] && (key!='$shared')) return false;
for (var key in t) if (!s[key] && (key!='$shared')) return false;
return true;
},
@ -521,12 +538,12 @@ var rtl = {
},
leSet: function(s,t){
for (var key in s) if (s.hasOwnProperty(key) && !t[key] && (key!='$shared')) return false;
for (var key in s) if (!t[key] && (key!='$shared')) return false;
return true;
},
geSet: function(s,t){
for (var key in t) if (t.hasOwnProperty(key) && !s[key] && (key!='$shared')) return false;
for (var key in t) if (!s[key] && (key!='$shared')) return false;
return true;
},