Property attributes, clarification please.

2010-04-22 Thread Asen Bozhilov
If I understand correctly specification 8.6  The Object Type
describe semantic of native objects and does some restriction on host
objects. For example:

| Every object (including host objects) must implement
| all of the internal properties listed in Table 8. However,
| the [[DefaultValue]] internal method may, for some objects,
| simply throw a TypeError exception.

That quotation is regard table 8, which contains internal properties
common to all objects.

My question is regard 8.6.1  Property Attributes, where ECMA-262
does not restriction on host objects. As I understand these property
attributes are only for native objects and host objects can use
different approaches for property attributes.

For example in JScript, Object.prototype.propertyIsEnumerable (V) with
passed host object as the `this` value throw TypeError exception. And
that is described by Microsoft:
URL: 
http://download.microsoft.com/download/8/4/2/8427CF1B-08B3-4557-952D-102E7A8FA64C/%5BMS-ES3%5D.pdf
/

|  2.1.62   [ECMA-262]
|  Section 15.2.4.7, Object.prototype.propertyIsEnumerable (V)  page 63
|  a.If O is a host object, throw a TypeError exception.

And by ECMA-262 that is conformable behaviour, because specification
does not restrict host objects to implement these property attributes.

Does someone to make clarification on these things? Thanks.
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Property attributes, clarification please.

2010-04-22 Thread Peter van der Zee
On Thu, Apr 22, 2010 at 9:38 AM, Asen Bozhilov asen.bozhi...@gmail.comwrote:

 If I understand correctly specification 8.6  The Object Type
 describe semantic of native objects and does some restriction on host
 objects. For example:

 | Every object (including host objects) must implement
 | all of the internal properties listed in Table 8. However,
 | the [[DefaultValue]] internal method may, for some objects,
 | simply throw a TypeError exception.

 That quotation is regard table 8, which contains internal properties
 common to all objects.

 My question is regard 8.6.1  Property Attributes, where ECMA-262
 does not restriction on host objects. As I understand these property
 attributes are only for native objects and host objects can use
 different approaches for property attributes.


8.6.1 does not seem to mention anything about host objects., only about
named properties.
8.6.2 indeed explicitly says that all objects, native and host, should
implement the attributes from table 8. Furthermore, the first paragraph says
that any internal property that does not exist should throw a TypeException
when accessed anyways. The second paragraph states the _behaviour_ of table
8 is only required for native objects. Host objects may implement them
differently, as long as they remain to behave within the limitations of a
host object as outlined by the specification.


 For example in JScript, Object.prototype.propertyIsEnumerable (V) with
 passed host object as the `this` value throw TypeError exception. And
 that is described by Microsoft:
 URL:
 http://download.microsoft.com/download/8/4/2/8427CF1B-08B3-4557-952D-102E7A8FA64C/%5BMS-ES3%5D.pdf
 /

 |  2.1.62   [ECMA-262]
 |  Section 15.2.4.7, Object.prototype.propertyIsEnumerable (V)  page 63
 |  a.If O is a host object, throw a TypeError exception.

 And by ECMA-262 that is conformable behaviour, because specification
 does not restrict host objects to implement these property attributes.

 Does someone to make clarification on these things? Thanks.


The attributes must be implemented, and they might all be, but they can all
throw a TypeError regardless of what is being done with them. In this case,
either the attributes can be seen as getters and setters which always throw
TypeErrors, or you can't even get to them because whatever method you use to
try that will throw you out before you can reach the actual attribute.

Either way, as far as is observable, this behaviour seems in line with the
specification.

- peter
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss


Re: Property attributes, clarification please.

2010-04-22 Thread Peter van der Zee
On Thu, Apr 22, 2010 at 10:42 AM, Peter van der Zee e...@qfox.nl wrote:


 The attributes must be implemented, and they might all be, but they can all
 throw a TypeError regardless of what is being done with them. In this case,
 either the attributes can be seen as getters and setters which always throw
 TypeErrors, or you can't even get to them because whatever method you use to
 try that will throw you out before you can reach the actual attribute.


Properties...
___
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss