<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>16450</bug_id>
          
          <creation_ts>2012-03-20 15:42:51 +0000</creation_ts>
          <short_desc>Class String</short_desc>
          <delta_ts>2012-03-27 00:06:28 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebAppsWG</product>
          <component>WebIDL</component>
          <version>unspecified</version>
          <rep_platform>DEC</rep_platform>
          <op_sys>Neutrino</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Caceres">w3c</reporter>
          <assigned_to name="Cameron McCormack">cam</assigned_to>
          <cc>mike</cc>
    
    <cc>public-script-coord</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65845</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Caceres">w3c</who>
    <bug_when>2012-03-20 15:42:51 +0000</bug_when>
    <thetext>If class string is an internal property of an object, then it should be defined as [[ClassString]] to be consistant with ECMAScript. It&apos;s confusing to bounce from conceptual definitions to object property definitions. Also, there is a pattern to expose all internal properties of an object in ECMAScript5. I think it should be the assumption that Class String will also eventually be exposed to script (or should be explicitly defined to be!). 

If anything, for sanity, give the class string contant names:

platform object: &quot;Platform&quot;
interface prototype object: = &quot;Prototype&quot;
exception interface prototype = &quot;Exception&quot;

or some such. This would be consistant with the use of ECMAScript5 Type(x). In the case of WebIDL, it should be referred to as ClassType(x), then in prose: 

 If ClassType(x) is &quot;Platform&quot;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65929</commentid>
    <comment_count>1</comment_count>
    <who name="Cameron McCormack">cam</who>
    <bug_when>2012-03-21 22:51:03 +0000</bug_when>
    <thetext>Internal properties are really just conceptual definitions anyway, they&apos;re not expected to exist on the property internally necessarily.

I don&apos;t believe there is a way to expose arbitrary internal properties from ES5 objects.

I define the class string solely to avoid redefining [[Class]], to make it possible for pure JS implementations to have Object.prototype.toString behave appropriately.  I think at some point ECMAScript is going to gain an internal property like this, but I don&apos;t think they have done so yet.  When they do, we can rewrite Web IDL to use that rather having the &quot;class string&quot; definition.

I don&apos;t think it makes sense to have all platform objects return &quot;[object Platform]&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66088</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron McCormack">cam</who>
    <bug_when>2012-03-27 00:06:28 +0000</bug_when>
    <thetext>I think it is fine how it is, and we definitely don&apos;t want to use strings like &quot;Platform&quot;.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>