Lines Matching refs:member
387 * options is a dictionary that can have an only or except member which are
720 for (const member of Object.values(this.members).filter(m => m.base)) {
721 const lhs = member.name;
722 const rhs = member.base;
731 member.get_reverse_inheritance_stack();
735 var member = this.members[memberName];
736 if (!(member instanceof IdlInterface)) {
740 var globals = exposure_set(member);
741 member.exposed = exposed_in(globals);
742 member.exposureSet = globals;
745 // Now run test() on every member, and test_object() for every object.
753 throw new IdlHarnessError(`Invalid or empty objects for member ${name}`);
758 throw new IdlHarnessError(`Invalid object member name ${name}`);
835 parsed_idl.members.forEach(function (member) {
836 member.extAttrs.push(exposureAttr);
851 var clash = parsed_idl.members.find(function(member) {
853 return this.are_duplicate_members(m, member);
856 parsed_idl.members.forEach(function(member)
858 this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member));
860 assert_true(!clash, "member " + (clash && clash.name) + " is unique");
861 }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: member names are unique`);
882 var clash = this.members[rhs].members.find(function(member) {
884 return this.are_duplicate_members(m, member);
887 this.members[rhs].members.forEach(function(member) {
889 this.members[lhs].members.every(m => !this.are_duplicate_members(m, member)),
890 "member " + member.name + " is unique");
891 this.members[lhs].members.push(new IdlInterfaceMember(member));
893 assert_true(!clash, "member " + (clash && clash.name) + " is unique");
894 }.bind(this), lhs + " includes " + rhs + ": member names are unique");
1219 * on each member, not this.
1256 return this.members.some(function(member) {
1257 return member.type === "const";
1263 return this.members.filter(function(member) {
1264 return member.isUnscopable;
1940 // If the interface has any member declared with the [Unscopable] extended
1969 // have all the ones we should will happen in the per-member tests.
2101 IdlInterface.prototype.test_member_const = function(member)
2114 assert_own_property(this.get_interface_object(), member.name);
2118 assert_equals(this.get_interface_object()[member.name], constValue(member.value),
2122 var desc = Object.getOwnPropertyDescriptor(this.get_interface_object(), member.name);
2128 }.bind(this), this.name + " interface: constant " + member.name + " on interface object");
2145 assert_own_property(this.get_interface_object().prototype, member.name);
2146 assert_equals(this.get_interface_object().prototype[member.name], constValue(member.value),
2148 var desc = Object.getOwnPropertyDescriptor(this.get_interface_object(), member.name);
2154 }.bind(this), this.name + " interface: constant " + member.name + " on interface prototype object");
2158 IdlInterface.prototype.test_member_attribute = function(member)
2163 var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: attribute " + member.name);
2175 if (member.special === "static") {
2176 assert_own_property(this.get_interface_object(), member.name,
2178 format_value(member.name));
2183 this.do_member_unscopable_asserts(member);
2186 assert_own_property(self, member.name,
2188 format_value(member.name));
2189 assert_false(member.name in this.get_interface_object().prototype,
2191 format_value(member.name));
2193 var getter = Object.getOwnPropertyDescriptor(self, member.name).get;
2195 format_value(member.name) + " must have a getter");
2203 propVal = self[member.name];
2215 this.do_interface_attribute_asserts(self, member, a_test);
2217 assert_true(member.name in this.get_interface_object().prototype,
2219 format_value(member.name));
2221 if (!member.has_extended_attribute("LegacyLenientThis")) {
2222 if (member.idlType.generic !== "Promise") {
2225 this.get_interface_object().prototype[member.name];
2229 this.do_interface_attribute_asserts(this.get_interface_object().prototype, member, a_test);
2232 this.get_interface_object().prototype[member.name])
2237 member, a_test);
2241 assert_equals(this.get_interface_object().prototype[member.name], undefined,
2245 this.do_interface_attribute_asserts(this.get_interface_object().prototype, member, a_test);
2251 IdlInterface.prototype.test_member_operation = function(member)
2256 var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: operation " + member);
2290 if (member.special === "static") {
2291 assert_own_property(this.get_interface_object(), member.name,
2298 assert_own_property(self, member.name,
2304 assert_own_property(this.get_interface_object().prototype, member.name,
2308 this.do_member_unscopable_asserts(member);
2309 this.do_member_operation_asserts(memberHolderObject, member, a_test);
2313 IdlInterface.prototype.do_member_unscopable_asserts = function(member)
2315 // Check that if the member is unscopable then it's in the
2317 if (!member.isUnscopable) {
2322 var prop = member.name;
2340 IdlInterface.prototype.do_member_operation_asserts = function(memberHolderObject, member, a_test)
2343 var operationUnforgeable = member.isUnforgeable;
2344 var desc = Object.getOwnPropertyDescriptor(memberHolderObject, member.name);
2357 assert_equals(typeof memberHolderObject[member.name], "function",
2361 return m.type == "operation" && m.name == member.name;
2364 memberHolderObject[member.name].length,
2368 memberHolderObject[member.name].name,
2369 member.name,
2373 var args = member.arguments.map(function(arg) {
2387 if (member.special !== "static") {
2390 memberHolderObject[member.name] != self[member.name])
2393 throwOrReject(a_test, member, memberHolderObject[member.name], null, args,
2404 throwOrReject(a_test, member, memberHolderObject[member.name], {}, args,
2411 IdlInterface.prototype.test_to_json_operation = function(desc, memberHolderObject, member) {
2413 || member.name + " object";
2414 if (member.has_extended_attribute("Default")) {
2430 assert_true(this.array.is_json_type(member.idlType), JSON.stringify(member.idlType) + " is not an appropriate return value for the toJSON operation of " + instanceName);
2431 this.array.assert_type_is(memberHolderObject.toJSON(), member.idlType);
2436 IdlInterface.prototype.test_member_iterable = function(member)
2440 var isPairIterator = member.idlType.length === 2;
2471 }.bind(this), this.name + " interface: iterable<" + member.idlType.map(function(t) { return t.idlType; }).join(", ") + ">");
2474 IdlInterface.prototype.test_member_maplike = function(member) {
2486 if (!member.readonly) {
2517 }, `${this.name} interface: maplike<${member.idlType.map(t => t.idlType).join(", ")}>`);
2520 IdlInterface.prototype.test_member_setlike = function(member) {
2531 if (!member.readonly) {
2562 }, `${this.name} interface: setlike<${member.idlType.map(t => t.idlType).join(", ")}>`);
2565 IdlInterface.prototype.test_member_async_iterable = function(member)
2569 var isPairIterator = member.idlType.length === 2;
2593 }.bind(this), this.name + " interface: async iterable<" + member.idlType.map(function(t) { return t.idlType; }).join(", ") + ">");
2596 IdlInterface.prototype.test_member_stringifier = function(member)
2620 var stringifierUnforgeable = member.isUnforgeable;
2661 var member = this.members[i];
2662 if (member.untested) {
2666 if (!exposed_in(exposure_set(member, this.exposureSet))) {
2669 assert_false(member.name in this.get_interface_object(),
2671 format_value(member.name));
2672 assert_false(member.name in this.get_interface_object().prototype,
2674 format_value(member.name));
2675 }.bind(this), this.name + " interface: member " + member.name);
2679 switch (member.type) {
2681 this.test_member_const(member);
2687 if (!member.isUnforgeable)
2689 this.test_member_attribute(member);
2691 if (member.special === "stringifier") {
2692 this.test_member_stringifier(member);
2701 if (member.name) {
2702 if (!member.isUnforgeable)
2704 this.test_member_operation(member);
2706 } else if (member.special === "stringifier") {
2707 this.test_member_stringifier(member);
2712 if (member.async) {
2713 this.test_member_async_iterable(member);
2715 this.test_member_iterable(member);
2719 this.test_member_maplike(member);
2722 this.test_member_setlike(member);
2725 // TODO: check more member types.
2843 var member = this.members[i];
2844 if (member.untested) {
2847 if (!exposed_in(exposure_set(member, this.exposureSet))) {
2850 assert_false(member.name in obj);
2851 }.bind(this), this.name + " interface: " + desc + ' must not have property "' + member.name + '"');
2854 if (member.type == "attribute" && member.isUnforgeable)
2856 var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: " + desc + ' must have own property "' + member.name + '"');
2861 this.do_interface_attribute_asserts(obj, member, a_test);
2864 else if (member.type == "operation" &&
2865 member.name &&
2866 member.isUnforgeable)
2868 var a_test = subsetTestByKey(this.name, async_test, this.name + " interface: " + desc + ' must have own property "' + member.name + '"');
2873 assert_own_property(obj, member.name,
2875 this.do_member_operation_asserts(obj, member, a_test);
2878 else if ((member.type == "const"
2879 || member.type == "attribute"
2880 || member.type == "operation")
2881 && member.name)
2887 if (member.special !== "static") {
2889 assert_inherits(obj, member.name);
2891 assert_own_property(obj, member.name);
2894 if (member.type == "const")
2896 assert_equals(obj[member.name], constValue(member.value));
2898 if (member.type == "attribute")
2906 property = obj[member.name];
2914 if (this.name == "Document" && member.name == "all")
2921 this.array.assert_type_is(property, member.idlType);
2925 if (member.type == "operation")
2927 assert_equals(typeof obj[member.name], "function");
2930 }.bind(this), this.name + " interface: " + desc + ' must inherit property "' + member + '" with the proper type');
2935 if (member.type == "operation" && member.name && member.arguments.length)
2938 this.name + " interface: calling " + member + " on " + desc +
2946 if (member.special !== "static") {
2947 if (!this.is_global() && !member.isUnforgeable) {
2948 assert_inherits(obj, member.name);
2950 assert_own_property(obj, member.name);
2952 fn = obj[member.name];
2956 assert_own_property(obj.constructor, member.name, "interface object must have static operation as own property");
2957 fn = obj.constructor[member.name];
2961 return m.type == "operation" && m.name == member.name;
2966 throwOrReject(a_test, member, fn, obj, args, "Called with " + i + " arguments", cb);
2968 args.push(create_suitable_object(member.arguments[i].idlType));
2976 if (member.is_to_json_regular_operation()) {
2977 this.test_to_json_operation(desc, obj, member);
2989 if (this.members.some(function(member) { return member.special === "stringifier"; })) {
2999 IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_test)
3011 assert_own_property(obj, member.name);
3019 var desc = Object.getOwnPropertyDescriptor(obj, member.name);
3023 if (member.isUnforgeable)
3038 if (member.special !== "static") {
3043 if (!member.has_extended_attribute("LegacyLenientThis")) {
3044 if (member.idlType.generic !== "Promise") {
3065 assert_equals(desc.get.name, "get " + member.name,
3066 "getter must have the name 'get " + member.name + "'");
3071 if (member.readonly
3072 && !member.has_extended_attribute("LegacyLenientSetter")
3073 && !member.has_extended_attribute("PutForwards")
3074 && !member.has_extended_attribute("Replaceable"))
3088 if (member.special !== "static") {
3095 if (!member.has_extended_attribute("LegacyLenientThis")) {
3111 assert_equals(desc.set.name, "set " + member.name,
3112 "The attribute setter must have the name 'set " + member.name + "'");
3288 IdlNamespace.prototype.do_member_operation_asserts = function (memberHolderObject, member, a_test)
3290 var desc = Object.getOwnPropertyDescriptor(memberHolderObject, member.name);
3296 !member.isUnforgeable,
3301 !member.isUnforgeable,
3305 typeof memberHolderObject[member.name],
3310 memberHolderObject[member.name].length,
3312 return m.type == "operation" && m.name == member.name;
3318 IdlNamespace.prototype.test_member_operation = function(member)
3326 this.name + ' namespace: operation ' + member);
3330 member.name,
3331 'namespace object missing operation ' + format_value(member.name));
3333 this.do_member_operation_asserts(self[this.name], member, a_test);
3337 IdlNamespace.prototype.test_member_attribute = function (member)
3345 this.name + ' namespace: attribute ' + member.name);
3350 member.name,
3351 this.name + ' does not have property ' + format_value(member.name));
3353 var desc = Object.getOwnPropertyDescriptor(self[this.name], member.name);
3441 throw 'Invalid namespace member ' + v.name + ': ' + v.type + ' not supported';
3467 "constructor-member",