Changeset 21470 in webkit


Ignore:
Timestamp:
May 14, 2007 6:32:35 PM (17 years ago)
Author:
weinig
Message:

LayoutTests:

Reviewed by Alice.

  • fast/dom/document-attribute-js-null-expected.txt: Added.
  • fast/dom/document-attribute-js-null.html: Added.
  • fast/dom/element-attribute-js-null-expected.txt: Added.
  • fast/dom/element-attribute-js-null.html: Added.
  • fast/forms/input-null-expected.txt: Removed.
  • fast/forms/input-null.html: Removed.

WebCore:

Reviewed by Alice!

Convert JS null to the empty string when passing it to an attribute that takes
a DOMString.

Test: fast/dom/document-attribute-js-null.html
Test: fast/dom/element-attribute-js-null.html

  • bindings/js/kjs_dom.cpp: (KJS::DOMNode::putValueProperty):
  • bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): (KJS::JSHTMLElement::objectSetter): (KJS::JSHTMLElement::embedSetter): (KJS::JSHTMLElement::tableSetter): (KJS::JSHTMLElement::tableCaptionSetter): (KJS::JSHTMLElement::tableColSetter): (KJS::JSHTMLElement::tableSectionSetter): (KJS::JSHTMLElement::tableRowSetter): (KJS::JSHTMLElement::tableCellSetter): (KJS::JSHTMLElement::frameSetSetter): (KJS::JSHTMLElement::frameSetter): (KJS::JSHTMLElement::iFrameSetter): (KJS::JSHTMLElement::marqueeSetter): (KJS::JSHTMLElement::putValueProperty):
  • bindings/js/kjs_html.h:
  • dom/Document.idl:
  • dom/Node.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAppletElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLBRElement.idl:
  • html/HTMLBaseElement.idl:
  • html/HTMLBaseFontElement.idl:
  • html/HTMLBlockquoteElement.idl:
  • html/HTMLBodyElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLDivElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFontElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLFrameSetElement.idl:
  • html/HTMLHRElement.idl:
  • html/HTMLHeadElement.idl:
  • html/HTMLHeadingElement.idl:
  • html/HTMLHtmlElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLIsIndexElement.idl:
  • html/HTMLLIElement.idl:
  • html/HTMLLabelElement.idl:
  • html/HTMLLegendElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMapElement.idl:
  • html/HTMLMetaElement.idl:
  • html/HTMLModElement.idl:
  • html/HTMLOListElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptGroupElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLParagraphElement.idl:
  • html/HTMLParamElement.idl:
  • html/HTMLQuoteElement.idl:
  • html/HTMLScriptElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLStyleElement.idl:
  • html/HTMLTableCaptionElement.idl:
  • html/HTMLTableCellElement.idl:
  • html/HTMLTableColElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/HTMLTitleElement.idl:
  • html/HTMLUListElement.idl:
Location:
trunk
Files:
4 added
2 deleted
58 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r21467 r21470  
     12007-05-14  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Alice.
     4
     5        - Tests for http://bugs.webkit.org/show_bug.cgi?id=13541
     6          REGRESSION: Setting a DOMString attribute to JS null in the
     7          JS bindings should default to converting to the empty string
     8
     9        * fast/dom/document-attribute-js-null-expected.txt: Added.
     10        * fast/dom/document-attribute-js-null.html: Added.
     11        * fast/dom/element-attribute-js-null-expected.txt: Added.
     12        * fast/dom/element-attribute-js-null.html: Added.
     13        * fast/forms/input-null-expected.txt: Removed.
     14        * fast/forms/input-null.html: Removed.
     15
    1162007-05-14  Justin Garcia  <justin.garcia@apple.com>
    217
  • trunk/WebCore/ChangeLog

    r21469 r21470  
     12007-05-14  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Alice!
     4
     5        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
     6          REGRESSION: Setting a DOMString attribute to JS null in the
     7          JS bindings should default to converting to the empty string
     8
     9          Convert JS null to the empty string when passing it to an attribute that takes
     10          a DOMString.
     11
     12        Test: fast/dom/document-attribute-js-null.html
     13        Test: fast/dom/element-attribute-js-null.html
     14
     15        * bindings/js/kjs_dom.cpp:
     16        (KJS::DOMNode::putValueProperty):
     17        * bindings/js/kjs_html.cpp:
     18        (KJS::JSHTMLDocument::putValueProperty):
     19        (KJS::JSHTMLElement::objectSetter):
     20        (KJS::JSHTMLElement::embedSetter):
     21        (KJS::JSHTMLElement::tableSetter):
     22        (KJS::JSHTMLElement::tableCaptionSetter):
     23        (KJS::JSHTMLElement::tableColSetter):
     24        (KJS::JSHTMLElement::tableSectionSetter):
     25        (KJS::JSHTMLElement::tableRowSetter):
     26        (KJS::JSHTMLElement::tableCellSetter):
     27        (KJS::JSHTMLElement::frameSetSetter):
     28        (KJS::JSHTMLElement::frameSetter):
     29        (KJS::JSHTMLElement::iFrameSetter):
     30        (KJS::JSHTMLElement::marqueeSetter):
     31        (KJS::JSHTMLElement::putValueProperty):
     32        * bindings/js/kjs_html.h:
     33        * dom/Document.idl:
     34        * dom/Node.idl:
     35        * html/HTMLAnchorElement.idl:
     36        * html/HTMLAppletElement.idl:
     37        * html/HTMLAreaElement.idl:
     38        * html/HTMLBRElement.idl:
     39        * html/HTMLBaseElement.idl:
     40        * html/HTMLBaseFontElement.idl:
     41        * html/HTMLBlockquoteElement.idl:
     42        * html/HTMLBodyElement.idl:
     43        * html/HTMLButtonElement.idl:
     44        * html/HTMLDivElement.idl:
     45        * html/HTMLDocument.idl:
     46        * html/HTMLElement.idl:
     47        * html/HTMLEmbedElement.idl:
     48        * html/HTMLFontElement.idl:
     49        * html/HTMLFormElement.idl:
     50        * html/HTMLFrameElement.idl:
     51        * html/HTMLFrameSetElement.idl:
     52        * html/HTMLHRElement.idl:
     53        * html/HTMLHeadElement.idl:
     54        * html/HTMLHeadingElement.idl:
     55        * html/HTMLHtmlElement.idl:
     56        * html/HTMLIFrameElement.idl:
     57        * html/HTMLImageElement.idl:
     58        * html/HTMLInputElement.idl:
     59        * html/HTMLIsIndexElement.idl:
     60        * html/HTMLLIElement.idl:
     61        * html/HTMLLabelElement.idl:
     62        * html/HTMLLegendElement.idl:
     63        * html/HTMLLinkElement.idl:
     64        * html/HTMLMapElement.idl:
     65        * html/HTMLMetaElement.idl:
     66        * html/HTMLModElement.idl:
     67        * html/HTMLOListElement.idl:
     68        * html/HTMLObjectElement.idl:
     69        * html/HTMLOptGroupElement.idl:
     70        * html/HTMLOptionElement.idl:
     71        * html/HTMLParagraphElement.idl:
     72        * html/HTMLParamElement.idl:
     73        * html/HTMLQuoteElement.idl:
     74        * html/HTMLScriptElement.idl:
     75        * html/HTMLSelectElement.idl:
     76        * html/HTMLStyleElement.idl:
     77        * html/HTMLTableCaptionElement.idl:
     78        * html/HTMLTableCellElement.idl:
     79        * html/HTMLTableColElement.idl:
     80        * html/HTMLTableElement.idl:
     81        * html/HTMLTableRowElement.idl:
     82        * html/HTMLTableSectionElement.idl:
     83        * html/HTMLTextAreaElement.idl:
     84        * html/HTMLTitleElement.idl:
     85        * html/HTMLUListElement.idl:
     86
    1872007-05-14  Geoffrey Garen  <ggaren@apple.com>
    288
  • trunk/WebCore/bindings/js/kjs_dom.cpp

    r20495 r21470  
    259259  switch (token) {
    260260  case NodeValue:
    261     node.setNodeValue(value->toString(exec), exception);
     261    node.setNodeValue(valueToStringWithNullCheck(exec, value), exception);
    262262    break;
    263263  case Prefix:
    264     node.setPrefix(value->toString(exec), exception);
     264    node.setPrefix(valueToStringWithNullCheck(exec, value), exception);
    265265    break;
    266266  case TextContent:
  • trunk/WebCore/bindings/js/kjs_html.cpp

    r21082 r21470  
    326326  switch (token) {
    327327  case Title:
    328     doc.setTitle(value->toString(exec));
     328    doc.setTitle(valueToStringWithNullCheck(exec, value));
    329329    break;
    330330  case Body:
     
    335335    break;
    336336  case Cookie:
    337     doc.setCookie(value->toString(exec));
     337    doc.setCookie(valueToStringWithNullCheck(exec, value));
    338338    break;
    339339  case Location:
     
    355355  case BgColor:
    356356    if (bodyElement)
    357       bodyElement->setBgColor(value->toString(exec));
     357      bodyElement->setBgColor(valueToStringWithNullCheck(exec, value));
    358358    break;
    359359  case FgColor:
    360360    if (bodyElement)
    361       bodyElement->setText(value->toString(exec));
     361      bodyElement->setText(valueToStringWithNullCheck(exec, value));
    362362    break;
    363363  case AlinkColor:
     
    366366      // document's link colors over and over to the same value and we
    367367      // don't want to incur a style update each time.
    368       String newColor = value->toString(exec);
     368      String newColor = valueToStringWithNullCheck(exec, value);
    369369      if (bodyElement->aLink() != newColor)
    370370        bodyElement->setALink(newColor);
     
    376376      // document's link colors over and over to the same value and we
    377377      // don't want to incur a style update each time.
    378       String newColor = value->toString(exec);
     378      String newColor = valueToStringWithNullCheck(exec, value);
    379379      if (bodyElement->link() != newColor)
    380380        bodyElement->setLink(newColor);
     
    386386      // document's link colors over and over to the same value and we
    387387      // don't want to incur a style update each time.
    388       String newColor = value->toString(exec);
     388      String newColor = valueToStringWithNullCheck(exec, value);
    389389      if (bodyElement->vLink() != newColor)
    390390        bodyElement->setVLink(newColor);
     
    393393  case Dir:
    394394    if (body)
    395       body->setDir(value->toString(exec));
     395      body->setDir(valueToStringWithNullCheck(exec, value));
    396396    break;
    397397  case DesignMode:
    398398    {
    399       String modeString = value->toString(exec);
     399      String modeString = valueToStringWithNullCheck(exec, value);
    400400      Document::InheritedBool mode;
    401401      if (equalIgnoringCase(modeString, "on"))
     
    11821182}
    11831183
    1184 void JSHTMLElement::objectSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1184void JSHTMLElement::objectSetter(ExecState* exec, int token, JSValue* value)
    11851185{
    11861186    HTMLObjectElement& object = *static_cast<HTMLObjectElement*>(impl());
    11871187    switch (token) {
    11881188        // read-only: form
    1189         case ObjectCode:            { object.setCode(str); return; }
    1190         case ObjectAlign:           { object.setAlign(str); return; }
    1191         case ObjectArchive:         { object.setArchive(str); return; }
    1192         case ObjectBorder:          { object.setBorder(str); return; }
    1193         case ObjectCodeBase:        { object.setCodeBase(str); return; }
    1194         case ObjectCodeType:        { object.setCodeType(str); return; }
     1189        case ObjectCode:            { object.setCode(valueToStringWithNullCheck(exec, value)); return; }
     1190        case ObjectAlign:           { object.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1191        case ObjectArchive:         { object.setArchive(valueToStringWithNullCheck(exec, value)); return; }
     1192        case ObjectBorder:          { object.setBorder(valueToStringWithNullCheck(exec, value)); return; }
     1193        case ObjectCodeBase:        { object.setCodeBase(valueToStringWithNullCheck(exec, value)); return; }
     1194        case ObjectCodeType:        { object.setCodeType(valueToStringWithNullCheck(exec, value)); return; }
    11951195        // read-only: ObjectContentDocument
    1196         case ObjectData:            { object.setData(str); return; }
     1196        case ObjectData:            { object.setData(valueToStringWithNullCheck(exec, value)); return; }
    11971197        case ObjectDeclare:         { object.setDeclare(value->toBoolean(exec)); return; }
    1198         case ObjectHeight:          { object.setHeight(str); return; }
     1198        case ObjectHeight:          { object.setHeight(valueToStringWithNullCheck(exec, value)); return; }
    11991199        case ObjectHspace:          { object.setHspace(value->toInt32(exec)); return; }
    1200         case ObjectName:            { object.setName(str); return; }
    1201         case ObjectStandby:         { object.setStandby(str); return; }
     1200        case ObjectName:            { object.setName(valueToStringWithNullCheck(exec, value)); return; }
     1201        case ObjectStandby:         { object.setStandby(valueToStringWithNullCheck(exec, value)); return; }
    12021202        case ObjectTabIndex:        { object.setTabIndex(value->toInt32(exec)); return; }
    1203         case ObjectType:            { object.setType(str); return; }
    1204         case ObjectUseMap:          { object.setUseMap(str); return; }
     1203        case ObjectType:            { object.setType(valueToStringWithNullCheck(exec, value)); return; }
     1204        case ObjectUseMap:          { object.setUseMap(valueToStringWithNullCheck(exec, value)); return; }
    12051205        case ObjectVspace:          { object.setVspace(value->toInt32(exec)); return; }
    1206         case ObjectWidth:           { object.setWidth(str); return; }
    1207     }
    1208 }
    1209 
    1210 void JSHTMLElement::embedSetter(ExecState*, int token, JSValue*, const WebCore::String& str)
     1206        case ObjectWidth:           { object.setWidth(valueToStringWithNullCheck(exec, value)); return; }
     1207    }
     1208}
     1209
     1210void JSHTMLElement::embedSetter(ExecState* exec, int token, JSValue* value)
    12111211{
    12121212    HTMLEmbedElement& embed = *static_cast<HTMLEmbedElement*>(impl());
    12131213    switch (token) {
    1214         case EmbedAlign:           { embed.setAlign(str); return; }
    1215         case EmbedHeight:          { embed.setHeight(str); return; }
    1216         case EmbedName:            { embed.setName(str); return; }
    1217         case EmbedSrc:             { embed.setSrc(str); return; }
    1218         case EmbedType:            { embed.setType(str); return; }
    1219         case EmbedWidth:           { embed.setWidth(str); return; }
    1220     }
    1221 }
    1222 
    1223 void JSHTMLElement::tableSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1214        case EmbedAlign:           { embed.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1215        case EmbedHeight:          { embed.setHeight(value->toString(exec)); return; }
     1216        case EmbedName:            { embed.setName(valueToStringWithNullCheck(exec, value)); return; }
     1217        case EmbedSrc:             { embed.setSrc(valueToStringWithNullCheck(exec, value)); return; }
     1218        case EmbedType:            { embed.setType(valueToStringWithNullCheck(exec, value)); return; }
     1219        case EmbedWidth:           { embed.setWidth(value->toString(exec)); return; }
     1220    }
     1221}
     1222
     1223void JSHTMLElement::tableSetter(ExecState* exec, int token, JSValue* value)
    12241224{
    12251225    HTMLTableElement& table = *static_cast<HTMLTableElement*>(impl());
     
    12301230        // read-only: rows
    12311231        // read-only: tbodies
    1232         case TableAlign:           { table.setAlign(str); return; }
    1233         case TableBgColor:         { table.setBgColor(str); return; }
    1234         case TableBorder:          { table.setBorder(str); return; }
    1235         case TableCellPadding:     { table.setCellPadding(str); return; }
    1236         case TableCellSpacing:     { table.setCellSpacing(str); return; }
    1237         case TableFrame:           { table.setFrame(str); return; }
    1238         case TableRules:           { table.setRules(str); return; }
    1239         case TableSummary:         { table.setSummary(str); return; }
    1240         case TableWidth:           { table.setWidth(str); return; }
    1241     }
    1242 }
    1243 
    1244 void JSHTMLElement::tableCaptionSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1232        case TableAlign:           { table.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1233        case TableBgColor:         { table.setBgColor(valueToStringWithNullCheck(exec, value)); return; }
     1234        case TableBorder:          { table.setBorder(valueToStringWithNullCheck(exec, value)); return; }
     1235        case TableCellPadding:     { table.setCellPadding(valueToStringWithNullCheck(exec, value)); return; }
     1236        case TableCellSpacing:     { table.setCellSpacing(valueToStringWithNullCheck(exec, value)); return; }
     1237        case TableFrame:           { table.setFrame(valueToStringWithNullCheck(exec, value)); return; }
     1238        case TableRules:           { table.setRules(valueToStringWithNullCheck(exec, value)); return; }
     1239        case TableSummary:         { table.setSummary(valueToStringWithNullCheck(exec, value)); return; }
     1240        case TableWidth:           { table.setWidth(valueToStringWithNullCheck(exec, value)); return; }
     1241    }
     1242}
     1243
     1244void JSHTMLElement::tableCaptionSetter(ExecState* exec, int token, JSValue* value)
    12451245{
    12461246    HTMLTableCaptionElement& tableCaption = *static_cast<HTMLTableCaptionElement*>(impl());
    12471247    if (token == TableCaptionAlign)
    1248         tableCaption.setAlign(str);
    1249 }
    1250 
    1251 void JSHTMLElement::tableColSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1248        tableCaption.setAlign(valueToStringWithNullCheck(exec, value));
     1249}
     1250
     1251void JSHTMLElement::tableColSetter(ExecState* exec, int token, JSValue* value)
    12521252{
    12531253    HTMLTableColElement& tableCol = *static_cast<HTMLTableColElement*>(impl());
    12541254    switch (token) {
    1255         case TableColAlign:           { tableCol.setAlign(str); return; }
    1256         case TableColCh:              { tableCol.setCh(str); return; }
    1257         case TableColChOff:           { tableCol.setChOff(str); return; }
     1255        case TableColAlign:           { tableCol.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1256        case TableColCh:              { tableCol.setCh(valueToStringWithNullCheck(exec, value)); return; }
     1257        case TableColChOff:           { tableCol.setChOff(valueToStringWithNullCheck(exec, value)); return; }
    12581258        case TableColSpan:            { tableCol.setSpan(value->toInt32(exec)); return; }
    1259         case TableColVAlign:          { tableCol.setVAlign(str); return; }
    1260         case TableColWidth:           { tableCol.setWidth(str); return; }
    1261     }
    1262 }
    1263 
    1264 void JSHTMLElement::tableSectionSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1259        case TableColVAlign:          { tableCol.setVAlign(valueToStringWithNullCheck(exec, value)); return; }
     1260        case TableColWidth:           { tableCol.setWidth(valueToStringWithNullCheck(exec, value)); return; }
     1261    }
     1262}
     1263
     1264void JSHTMLElement::tableSectionSetter(ExecState* exec, int token, JSValue* value)
    12651265{
    12661266    HTMLTableSectionElement& tableSection = *static_cast<HTMLTableSectionElement*>(impl());
    12671267    switch (token) {
    1268         case TableSectionAlign:           { tableSection.setAlign(str); return; }
    1269         case TableSectionCh:              { tableSection.setCh(str); return; }
    1270         case TableSectionChOff:           { tableSection.setChOff(str); return; }
    1271         case TableSectionVAlign:          { tableSection.setVAlign(str); return; }
     1268        case TableSectionAlign:           { tableSection.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1269        case TableSectionCh:              { tableSection.setCh(valueToStringWithNullCheck(exec, value)); return; }
     1270        case TableSectionChOff:           { tableSection.setChOff(valueToStringWithNullCheck(exec, value)); return; }
     1271        case TableSectionVAlign:          { tableSection.setVAlign(valueToStringWithNullCheck(exec, value)); return; }
    12721272        // read-only: rows
    12731273    }
    12741274}
    12751275
    1276 void JSHTMLElement::tableRowSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1276void JSHTMLElement::tableRowSetter(ExecState* exec, int token, JSValue* value)
    12771277{
    12781278    HTMLTableRowElement& tableRow = *static_cast<HTMLTableRowElement*>(impl());
     
    12811281        // read-only: sectionRowIndex
    12821282        // read-only: cells
    1283         case TableRowAlign:           { tableRow.setAlign(str); return; }
    1284         case TableRowBgColor:         { tableRow.setBgColor(str); return; }
    1285         case TableRowCh:              { tableRow.setCh(str); return; }
    1286         case TableRowChOff:           { tableRow.setChOff(str); return; }
    1287         case TableRowVAlign:          { tableRow.setVAlign(str); return; }
    1288     }
    1289 }
    1290 
    1291 void JSHTMLElement::tableCellSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1283        case TableRowAlign:           { tableRow.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1284        case TableRowBgColor:         { tableRow.setBgColor(valueToStringWithNullCheck(exec, value)); return; }
     1285        case TableRowCh:              { tableRow.setCh(valueToStringWithNullCheck(exec, value)); return; }
     1286        case TableRowChOff:           { tableRow.setChOff(valueToStringWithNullCheck(exec, value)); return; }
     1287        case TableRowVAlign:          { tableRow.setVAlign(valueToStringWithNullCheck(exec, value)); return; }
     1288    }
     1289}
     1290
     1291void JSHTMLElement::tableCellSetter(ExecState* exec, int token, JSValue* value)
    12921292{
    12931293    HTMLTableCellElement& tableCell = *static_cast<HTMLTableCellElement*>(impl());
    12941294    switch (token) {
    12951295        // read-only: cellIndex
    1296         case TableCellAbbr:            { tableCell.setAbbr(str); return; }
    1297         case TableCellAlign:           { tableCell.setAlign(str); return; }
    1298         case TableCellAxis:            { tableCell.setAxis(str); return; }
    1299         case TableCellBgColor:         { tableCell.setBgColor(str); return; }
    1300         case TableCellCh:              { tableCell.setCh(str); return; }
    1301         case TableCellChOff:           { tableCell.setChOff(str); return; }
     1296        case TableCellAbbr:            { tableCell.setAbbr(valueToStringWithNullCheck(exec, value)); return; }
     1297        case TableCellAlign:           { tableCell.setAlign(valueToStringWithNullCheck(exec, value)); return; }
     1298        case TableCellAxis:            { tableCell.setAxis(valueToStringWithNullCheck(exec, value)); return; }
     1299        case TableCellBgColor:         { tableCell.setBgColor(valueToStringWithNullCheck(exec, value)); return; }
     1300        case TableCellCh:              { tableCell.setCh(valueToStringWithNullCheck(exec, value)); return; }
     1301        case TableCellChOff:           { tableCell.setChOff(valueToStringWithNullCheck(exec, value)); return; }
    13021302        case TableCellColSpan:         { tableCell.setColSpan(value->toInt32(exec)); return; }
    1303         case TableCellHeaders:         { tableCell.setHeaders(str); return; }
    1304         case TableCellHeight:          { tableCell.setHeight(str); return; }
     1303        case TableCellHeaders:         { tableCell.setHeaders(valueToStringWithNullCheck(exec, value)); return; }
     1304        case TableCellHeight:          { tableCell.setHeight(valueToStringWithNullCheck(exec, value)); return; }
    13051305        case TableCellNoWrap:          { tableCell.setNoWrap(value->toBoolean(exec)); return; }
    13061306        case TableCellRowSpan:         { tableCell.setRowSpan(value->toInt32(exec)); return; }
    1307         case TableCellScope:           { tableCell.setScope(str); return; }
    1308         case TableCellVAlign:          { tableCell.setVAlign(str); return; }
    1309         case TableCellWidth:           { tableCell.setWidth(str); return; }
    1310     }
    1311 }
    1312 
    1313 void JSHTMLElement::frameSetSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1307        case TableCellScope:           { tableCell.setScope(valueToStringWithNullCheck(exec, value)); return; }
     1308        case TableCellVAlign:          { tableCell.setVAlign(valueToStringWithNullCheck(exec, value)); return; }
     1309        case TableCellWidth:           { tableCell.setWidth(valueToStringWithNullCheck(exec, value)); return; }
     1310    }
     1311}
     1312
     1313void JSHTMLElement::frameSetSetter(ExecState* exec, int token, JSValue* value)
    13141314{
    13151315    HTMLFrameSetElement& frameSet = *static_cast<HTMLFrameSetElement*>(impl());
    13161316    switch (token) {
    1317         case FrameSetCols:            { frameSet.setCols(str); return; }
    1318         case FrameSetRows:            { frameSet.setRows(str); return; }
    1319     }
    1320 }
    1321 
    1322 void JSHTMLElement::frameSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1317        case FrameSetCols:            { frameSet.setCols(valueToStringWithNullCheck(exec, value)); return; }
     1318        case FrameSetRows:            { frameSet.setRows(valueToStringWithNullCheck(exec, value)); return; }
     1319    }
     1320}
     1321
     1322void JSHTMLElement::frameSetter(ExecState* exec, int token, JSValue* value)
    13231323{
    13241324    HTMLFrameElement& frameElement = *static_cast<HTMLFrameElement*>(impl());
    13251325    switch (token) {
    13261326        // read-only: FrameContentDocument:
    1327         case FrameFrameBorder:     { frameElement.setFrameBorder(str); return; }
    1328         case FrameLongDesc:        { frameElement.setLongDesc(str); return; }
    1329         case FrameMarginHeight:    { frameElement.setMarginHeight(str); return; }
    1330         case FrameMarginWidth:     { frameElement.setMarginWidth(str); return; }
    1331         case FrameName:            { frameElement.setName(str); return; }
     1327        case FrameFrameBorder:     { frameElement.setFrameBorder(valueToStringWithNullCheck(exec, value)); return; }
     1328        case FrameLongDesc:        { frameElement.setLongDesc(valueToStringWithNullCheck(exec, value)); return; }
     1329        case FrameMarginHeight:    { frameElement.setMarginHeight(valueToStringWithNullCheck(exec, value)); return; }
     1330        case FrameMarginWidth:     { frameElement.setMarginWidth(valueToStringWithNullCheck(exec, value)); return; }
     1331        case FrameName:            { frameElement.setName(valueToStringWithNullCheck(exec, value)); return; }
    13321332        case FrameNoResize:        { frameElement.setNoResize(value->toBoolean(exec)); return; }
    1333         case FrameScrolling:       { frameElement.setScrolling(str); return; }
    1334         case FrameSrc:             { frameElement.setSrc(str); return; }
    1335         case FrameLocation:        { frameElement.setLocation(str); return; }
    1336     }
    1337 }
    1338 
    1339 void JSHTMLElement::iFrameSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1333        case FrameScrolling:       { frameElement.setScrolling(valueToStringWithNullCheck(exec, value)); return; }
     1334        case FrameSrc:             { frameElement.setSrc(valueToStringWithNullCheck(exec, value)); return; }
     1335        case FrameLocation:        { frameElement.setLocation(valueToStringWithNullCheck(exec, value)); return; }
     1336    }
     1337}
     1338
     1339void JSHTMLElement::iFrameSetter(ExecState* exec, int token, JSValue* value)
    13401340{
    13411341    HTMLIFrameElement& iFrame = *static_cast<HTMLIFrameElement*>(impl());
    13421342    switch (token) {
    1343         case IFrameAlign:           { iFrame.setAlign(str); return; }
     1343        case IFrameAlign:           { iFrame.setAlign(valueToStringWithNullCheck(exec, value)); return; }
    13441344        // read-only: IFrameContentDocument
    1345         case IFrameFrameBorder:     { iFrame.setFrameBorder(str); return; }
    1346         case IFrameHeight:          { iFrame.setHeight(str); return; }
    1347         case IFrameLongDesc:        { iFrame.setLongDesc(str); return; }
    1348         case IFrameMarginHeight:    { iFrame.setMarginHeight(str); return; }
    1349         case IFrameMarginWidth:     { iFrame.setMarginWidth(str); return; }
    1350         case IFrameName:            { iFrame.setName(str); return; }
    1351         case IFrameScrolling:       { iFrame.setScrolling(str); return; }
    1352         case IFrameSrc:             { iFrame.setSrc(str); return; }
    1353         case IFrameWidth:           { iFrame.setWidth(str); return; }
    1354     }
    1355 }
    1356 
    1357 void JSHTMLElement::marqueeSetter(ExecState* exec, int token, JSValue *value, const WebCore::String& str)
     1345        case IFrameFrameBorder:     { iFrame.setFrameBorder(valueToStringWithNullCheck(exec, value)); return; }
     1346        case IFrameHeight:          { iFrame.setHeight(valueToStringWithNullCheck(exec, value)); return; }
     1347        case IFrameLongDesc:        { iFrame.setLongDesc(valueToStringWithNullCheck(exec, value)); return; }
     1348        case IFrameMarginHeight:    { iFrame.setMarginHeight(valueToStringWithNullCheck(exec, value)); return; }
     1349        case IFrameMarginWidth:     { iFrame.setMarginWidth(valueToStringWithNullCheck(exec, value)); return; }
     1350        case IFrameName:            { iFrame.setName(valueToStringWithNullCheck(exec, value)); return; }
     1351        case IFrameScrolling:       { iFrame.setScrolling(valueToStringWithNullCheck(exec, value)); return; }
     1352        case IFrameSrc:             { iFrame.setSrc(valueToStringWithNullCheck(exec, value)); return; }
     1353        case IFrameWidth:           { iFrame.setWidth(valueToStringWithNullCheck(exec, value)); return; }
     1354    }
     1355}
     1356
     1357void JSHTMLElement::marqueeSetter(ExecState* exec, int token, JSValue* value)
    13581358{
    13591359    // FIXME: Find out what WinIE supports and implement it.
     
    13631363{
    13641364    DOMExceptionTranslator exception(exec);
    1365     WebCore::String str = value->toString(exec);
    13661365 
    13671366    // Check our set of generic properties first.
     
    13691368    switch (token) {
    13701369        case ElementId:
    1371             element.setId(str);
     1370            element.setId(valueToStringWithNullCheck(exec, value));
    13721371            return;
    13731372        case ElementLang:
    1374             element.setLang(str);
     1373            element.setLang(valueToStringWithNullCheck(exec, value));
    13751374            return;
    13761375        case ElementDir:
    1377             element.setDir(str);
     1376            element.setDir(valueToStringWithNullCheck(exec, value));
    13781377            return;
    13791378        case ElementClassName:
    1380             element.setClassName(str);
     1379            element.setClassName(valueToStringWithNullCheck(exec, value));
    13811380            return;
    13821381        case ElementInnerHTML:
    1383             element.setInnerHTML(str, exception);
     1382            element.setInnerHTML(valueToStringWithNullCheck(exec, value), exception);
    13841383            return;
    13851384        case ElementInnerText:
    1386             element.setInnerText(str, exception);
     1385            element.setInnerText(valueToStringWithNullCheck(exec, value), exception);
    13871386            return;
    13881387        case ElementOuterHTML:
    1389             element.setOuterHTML(str, exception);
     1388            element.setOuterHTML(valueToStringWithNullCheck(exec, value), exception);
    13901389            return;
    13911390        case ElementOuterText:
    1392             element.setOuterText(str, exception);
     1391            element.setOuterText(valueToStringWithNullCheck(exec, value), exception);
    13931392            return;
    13941393        case ElementContentEditable:
    1395             element.setContentEditable(str);
     1394            element.setContentEditable(valueToStringWithNullCheck(exec, value));
    13961395            return;
    13971396    }
     
    14001399    const Accessors* access = accessors();
    14011400    if (access && access->m_setter)
    1402         return (this->*(access->m_setter))(exec, token, value, str); 
     1401        return (this->*(access->m_setter))(exec, token, value);
    14031402}
    14041403
  • trunk/WebCore/bindings/js/kjs_html.h

    r20972 r21470  
    8686    // FIXME: Might make sense to combine this with ClassInfo some day.
    8787    typedef JSValue* (JSHTMLElement::*GetterFunction)(ExecState*, int token) const;
    88     typedef void (JSHTMLElement::*SetterFunction)(ExecState*, int token, JSValue*, const WebCore::String&);
     88    typedef void (JSHTMLElement::*SetterFunction)(ExecState*, int token, JSValue*);
    8989    struct Accessors { GetterFunction m_getter; SetterFunction m_setter; };
    9090    const Accessors* accessors() const;
     
    9595
    9696    JSValue* objectGetter(ExecState* exec, int token) const;
    97     void  objectSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     97    void  objectSetter(ExecState*, int token, JSValue*);
    9898    JSValue* embedGetter(ExecState*, int token) const;
    99     void  embedSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     99    void  embedSetter(ExecState*, int token, JSValue*);
    100100    JSValue* tableGetter(ExecState* exec, int token) const;
    101     void  tableSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     101    void  tableSetter(ExecState*, int token, JSValue*);
    102102    JSValue* tableCaptionGetter(ExecState* exec, int token) const;
    103     void  tableCaptionSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     103    void  tableCaptionSetter(ExecState*, int token, JSValue*);
    104104    JSValue* tableColGetter(ExecState* exec, int token) const;
    105     void  tableColSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     105    void  tableColSetter(ExecState*, int token, JSValue*);
    106106    JSValue* tableSectionGetter(ExecState* exec, int token) const;
    107     void  tableSectionSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     107    void  tableSectionSetter(ExecState*, int token, JSValue*);
    108108    JSValue* tableRowGetter(ExecState* exec, int token) const;
    109     void  tableRowSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     109    void  tableRowSetter(ExecState*, int token, JSValue*);
    110110    JSValue* tableCellGetter(ExecState* exec, int token) const;
    111     void  tableCellSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     111    void  tableCellSetter(ExecState*, int token, JSValue*);
    112112    JSValue* frameSetGetter(ExecState* exec, int token) const;
    113     void  frameSetSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     113    void  frameSetSetter(ExecState*, int token, JSValue*);
    114114    JSValue* frameGetter(ExecState* exec, int token) const;
    115     void  frameSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     115    void  frameSetter(ExecState*, int token, JSValue*);
    116116    JSValue* iFrameGetter(ExecState* exec, int token) const;
    117     void  iFrameSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     117    void  iFrameSetter(ExecState*, int token, JSValue*);
    118118    JSValue* marqueeGetter(ExecState* exec, int token) const;
    119     void  marqueeSetter(ExecState*, int token, JSValue*, const WebCore::String&);
     119    void  marqueeSetter(ExecState*, int token, JSValue*);
    120120
    121121    enum {
  • trunk/WebCore/dom/Document.idl

    r20997 r21470  
    6565
    6666        readonly attribute [ConvertNullStringTo=Null] DOMString xmlEncoding;
    67                  attribute [ConvertNullStringTo=Null] DOMString xmlVersion
     67                 attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString xmlVersion
    6868                    setter raises (DOMException);
    6969                 attribute boolean xmlStandalone
     
    150150        readonly attribute DOMString URL;
    151151#endif
    152                  attribute [ConvertNullStringTo=Undefined] DOMString charset;
     152                 attribute [ConvertNullStringTo=Undefined, ConvertNullToNullString] DOMString charset;
    153153        readonly attribute [ConvertNullStringTo=Undefined] DOMString defaultCharset;
    154154        readonly attribute [ConvertNullStringTo=Undefined] DOMString readyState;
     
    163163
    164164        readonly attribute [ConvertNullStringTo=Null] DOMString preferredStylesheetSet;
    165                  attribute [ConvertNullStringTo=Null] DOMString selectedStylesheetSet;
     165                 attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString selectedStylesheetSet;
    166166
    167167#if !defined(LANGUAGE_JAVASCRIPT)
  • trunk/WebCore/dom/Node.idl

    r20047 r21470  
    4040
    4141                 // FIXME: the spec says this can also raise on retrieval.
    42                  attribute DOMString        nodeValue
     42                 attribute [ConvertNullToNullString] DOMString        nodeValue
    4343                     setter raises(DOMException);
    4444
     
    7272                                           in DOMString version);
    7373        readonly attribute DOMString        namespaceURI;
    74                  attribute DOMString        prefix
     74                 attribute [ConvertNullToNullString] DOMString        prefix
    7575                     setter raises(DOMException);
    7676        readonly attribute DOMString        localName;
     
    8282
    8383                 // FIXME: the spec says this can also raise on retrieval.
    84                  attribute DOMString       textContent
     84                 attribute [ConvertNullToNullString] DOMString       textContent
    8585                     setter raises(DOMException);
    8686
  • trunk/WebCore/html/HTMLAnchorElement.idl

    r19024 r21470  
    2222
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLAnchorElement : HTMLElement {
    24         attribute DOMString accessKey;
    25         attribute DOMString charset;
    26         attribute DOMString coords;
    27         attribute DOMString href;
    28         attribute DOMString hreflang;
    29         attribute DOMString name;
    30         attribute DOMString rel;
    31         attribute DOMString rev;
    32         attribute DOMString shape;
     24        attribute [ConvertNullToNullString] DOMString accessKey;
     25        attribute [ConvertNullToNullString] DOMString charset;
     26        attribute [ConvertNullToNullString] DOMString coords;
     27        attribute [ConvertNullToNullString] DOMString href;
     28        attribute [ConvertNullToNullString] DOMString hreflang;
     29        attribute [ConvertNullToNullString] DOMString name;
     30        attribute [ConvertNullToNullString] DOMString rel;
     31        attribute [ConvertNullToNullString] DOMString rev;
     32        attribute [ConvertNullToNullString] DOMString shape;
    3333        attribute long tabIndex;
    34         attribute DOMString target;
    35         attribute DOMString type;
     34        attribute [ConvertNullToNullString] DOMString target;
     35        attribute [ConvertNullToNullString] DOMString type;
    3636       
    3737        void blur();
  • trunk/WebCore/html/HTMLAppletElement.idl

    r19024 r21470  
    2222
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLAppletElement : HTMLElement {
    24                  attribute DOMString align;
    25                  attribute DOMString alt;
    26                  attribute DOMString archive;
    27                  attribute DOMString code;
    28                  attribute DOMString codeBase;
    29                  attribute DOMString height;
     24                 attribute [ConvertNullToNullString] DOMString align;
     25                 attribute [ConvertNullToNullString] DOMString alt;
     26                 attribute [ConvertNullToNullString] DOMString archive;
     27                 attribute [ConvertNullToNullString] DOMString code;
     28                 attribute [ConvertNullToNullString] DOMString codeBase;
     29                 attribute [ConvertNullToNullString] DOMString height;
    3030#if defined(LANGUAGE_OBJECTIVE_C)
    3131                 attribute [ConvertFromString] long hspace;
    3232#else
    33                  attribute DOMString hspace;
     33                 attribute [ConvertNullToNullString] DOMString hspace;
    3434#endif
    35                  attribute DOMString name;
    36                  attribute DOMString object;
     35                 attribute [ConvertNullToNullString] DOMString name;
     36                 attribute [ConvertNullToNullString] DOMString object;
    3737#if defined(LANGUAGE_OBJECTIVE_C)
    3838                 attribute [ConvertFromString] long vspace;
    3939#else
    40                  attribute DOMString vspace;
     40                 attribute [ConvertNullToNullString] DOMString vspace;
    4141#endif
    42                  attribute DOMString width;
     42                 attribute [ConvertNullToNullString] DOMString width;
    4343    };
    4444
  • trunk/WebCore/html/HTMLAreaElement.idl

    r19024 r21470  
    2222
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLAreaElement : HTMLElement {
    24         attribute DOMString accessKey;
    25         attribute DOMString alt;
    26         attribute DOMString coords;
    27         attribute DOMString href;
     24        attribute [ConvertNullToNullString] DOMString accessKey;
     25        attribute [ConvertNullToNullString] DOMString alt;
     26        attribute [ConvertNullToNullString] DOMString coords;
     27        attribute [ConvertNullToNullString] DOMString href;
    2828        attribute boolean noHref;
    29         attribute DOMString shape;
     29        attribute [ConvertNullToNullString] DOMString shape;
    3030        attribute long tabIndex;
    31         attribute DOMString target;
     31        attribute [ConvertNullToNullString] DOMString target;
    3232
    3333        // IE Extensions
  • trunk/WebCore/html/HTMLBRElement.idl

    r19024 r21470  
    2020module html {
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLBRElement : HTMLElement {
    22         attribute DOMString clear;
     22        attribute [ConvertNullToNullString] DOMString clear;
    2323    };
    2424}
  • trunk/WebCore/html/HTMLBaseElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLBaseElement : HTMLElement {
    23         attribute DOMString            href;
    24         attribute DOMString            target;
     23        attribute [ConvertNullToNullString] DOMString            href;
     24        attribute [ConvertNullToNullString] DOMString            target;
    2525    };
    2626
  • trunk/WebCore/html/HTMLBaseFontElement.idl

    r19800 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLBaseFontElement : HTMLElement {
    23         attribute DOMString color;
    24         attribute DOMString face;
     23        attribute [ConvertNullToNullString] DOMString color;
     24        attribute [ConvertNullToNullString] DOMString face;
    2525#if defined(LANGUAGE_OBJECTIVE_C)
    2626        attribute [ConvertToString] DOMString size; // this changed to a long, but our existing API is a string
  • trunk/WebCore/html/HTMLBlockquoteElement.idl

    r14483 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement] HTMLBlockquoteElement : HTMLElement {
    23         attribute DOMString cite;
     23        attribute [ConvertNullToNullString] DOMString cite;
    2424    };
    2525}
  • trunk/WebCore/html/HTMLBodyElement.idl

    r19024 r21470  
    2121module html {
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLBodyElement : HTMLElement {
    23         attribute DOMString aLink;
    24         attribute DOMString background;
    25         attribute DOMString bgColor;
    26         attribute DOMString link;
    27         attribute DOMString text;
    28         attribute DOMString vLink;
     23        attribute [ConvertNullToNullString] DOMString aLink;
     24        attribute [ConvertNullToNullString] DOMString background;
     25        attribute [ConvertNullToNullString] DOMString bgColor;
     26        attribute [ConvertNullToNullString] DOMString link;
     27        attribute [ConvertNullToNullString] DOMString text;
     28        attribute [ConvertNullToNullString] DOMString vLink;
    2929       
    3030        // IE Extensions
  • trunk/WebCore/html/HTMLButtonElement.idl

    r19024 r21470  
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLButtonElement : HTMLElement {
    2424        readonly attribute  HTMLFormElement      form;
    25                  attribute  DOMString            accessKey;
     25                 attribute  [ConvertNullToNullString] DOMString            accessKey;
    2626                 attribute  boolean              disabled;
    27                  attribute  DOMString            name;
     27                 attribute  [ConvertNullToNullString] DOMString            name;
    2828                 attribute  long                 tabIndex;
    2929        readonly attribute  DOMString            type;
    30                  attribute  DOMString            value;
     30                 attribute  [ConvertNullToNullString] DOMString            value;
    3131                 
    3232        void click();
  • trunk/WebCore/html/HTMLDivElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLDivElement : HTMLElement {
    23         attribute DOMString align;
     23        attribute [ConvertNullToNullString] DOMString align;
    2424    };
    2525
  • trunk/WebCore/html/HTMLDocument.idl

    r16394 r21470  
    2323    interface [LegacyParent=KJS::JSHTMLDocument, GenerateConstructor] HTMLDocument : Document {
    2424#if !defined(LANGUAGE_JAVASCRIPT)
    25                  attribute DOMString title;
     25                 attribute [ConvertNullToNullString] DOMString title;
    2626        readonly attribute DOMString referrer;
    2727        readonly attribute DOMString domain;
     
    4141        // FIXME: the DOM spec states that this attribute can
    4242        // raise an exception on setting.
    43                  attribute DOMString cookie
     43                 attribute [ConvertNullToNullString] DOMString cookie
    4444                     /*setter raises (DOMException)*/;
    4545
  • trunk/WebCore/html/HTMLElement.idl

    r16299 r21470  
    2222
    2323    interface [GenerateConstructor] HTMLElement : Element {
    24                  attribute DOMString title;
     24                 attribute [ConvertNullToNullString] DOMString title;
    2525
    2626#if !defined(LANGUAGE_JAVASCRIPT)
    27                  attribute DOMString id;
    28                  attribute DOMString lang;
    29                  attribute DOMString dir;
    30                  attribute DOMString className;
     27                 attribute [ConvertNullToNullString] DOMString id;
     28                 attribute [ConvertNullToNullString] DOMString lang;
     29                 attribute [ConvertNullToNullString] DOMString dir;
     30                 attribute [ConvertNullToNullString] DOMString className;
    3131
    3232        // extensions
    3333
    34                  attribute DOMString innerHTML
    35                      setter raises (DOMException);
    36                  attribute DOMString innerText
    37                      setter raises (DOMException);
    38                  attribute DOMString outerHTML
    39                      setter raises (DOMException);
    40                  attribute DOMString outerText
    41                      setter raises (DOMException);
     34                 attribute [ConvertNullToNullString] DOMString innerHTML
     35                     setter raises(DOMException);
     36                 attribute [ConvertNullToNullString] DOMString innerText
     37                     setter raises(DOMException);
     38                 attribute [ConvertNullToNullString] DOMString outerHTML
     39                     setter raises(DOMException);
     40                 attribute [ConvertNullToNullString] DOMString outerText
     41                     setter raises(DOMException);
    4242
    4343        readonly attribute HTMLCollection children;
    4444
    45                  attribute DOMString contentEditable;
     45                 attribute [ConvertNullToNullString] DOMString contentEditable;
    4646        readonly attribute boolean isContentEditable;
    4747
  • trunk/WebCore/html/HTMLEmbedElement.idl

    r16888 r21470  
    2222
    2323    interface HTMLEmbedElement : HTMLElement {
    24                  attribute DOMString align;
     24                 attribute [ConvertNullToNullString] DOMString align;
    2525                 attribute [ConvertFromString] long height;
    26                  attribute DOMString name;
    27                  attribute DOMString src;
    28                  attribute DOMString type;
     26                 attribute [ConvertNullToNullString] DOMString name;
     27                 attribute [ConvertNullToNullString] DOMString src;
     28                 attribute [ConvertNullToNullString] DOMString type;
    2929                 attribute [ConvertFromString] long width;
    3030    };
  • trunk/WebCore/html/HTMLFontElement.idl

    r19024 r21470  
    2020module html {
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLFontElement : HTMLElement {
    22         attribute DOMString color;
    23         attribute DOMString face;
    24         attribute DOMString size;
     22        attribute [ConvertNullToNullString] DOMString color;
     23        attribute [ConvertNullToNullString] DOMString face;
     24        attribute [ConvertNullToNullString] DOMString size;
    2525    };
    2626}
  • trunk/WebCore/html/HTMLFormElement.idl

    r19024 r21470  
    2424        readonly attribute HTMLCollection  elements;
    2525        readonly attribute long            length;
    26                  attribute DOMString       name;
    27                  attribute DOMString       acceptCharset;
    28                  attribute DOMString       action;
    29                  attribute DOMString       encoding;  /* Netscape/Firefox legacy attribute. Same as enctype. */
    30                  attribute DOMString       enctype;
    31                  attribute DOMString       method;
    32                  attribute DOMString       target;
     26                 attribute [ConvertNullToNullString] DOMString       name;
     27                 attribute [ConvertNullToNullString] DOMString       acceptCharset;
     28                 attribute [ConvertNullToNullString] DOMString       action;
     29                 attribute [ConvertNullToNullString] DOMString       encoding;  /* Netscape/Firefox legacy attribute. Same as enctype. */
     30                 attribute [ConvertNullToNullString] DOMString       enctype;
     31                 attribute [ConvertNullToNullString] DOMString       method;
     32                 attribute [ConvertNullToNullString] DOMString       target;
    3333       
    3434        void               submit();
  • trunk/WebCore/html/HTMLFrameElement.idl

    r16098 r21470  
    2323    interface HTMLFrameElement : HTMLElement {
    2424
    25                  attribute DOMString       frameBorder;
    26                  attribute DOMString       longDesc;
    27                  attribute DOMString       marginHeight;
    28                  attribute DOMString       marginWidth;
    29                  attribute DOMString       name;
     25                 attribute [ConvertNullToNullString] DOMString       frameBorder;
     26                 attribute [ConvertNullToNullString] DOMString       longDesc;
     27                 attribute [ConvertNullToNullString] DOMString       marginHeight;
     28                 attribute [ConvertNullToNullString] DOMString       marginWidth;
     29                 attribute [ConvertNullToNullString] DOMString       name;
    3030                 attribute boolean         noResize;
    31                  attribute DOMString       scrolling;
    32                  attribute DOMString       src;
     31                 attribute [ConvertNullToNullString] DOMString       scrolling;
     32                 attribute [ConvertNullToNullString] DOMString       src;
    3333        // Introduced in DOM Level 2:
    3434        readonly attribute Document        contentDocument;
  • trunk/WebCore/html/HTMLFrameSetElement.idl

    r16098 r21470  
    2323    interface HTMLFrameSetElement : HTMLElement {
    2424
    25         attribute DOMString cols;
    26         attribute DOMString rows;
     25        attribute [ConvertNullToNullString] DOMString cols;
     26        attribute [ConvertNullToNullString] DOMString rows;
    2727
    2828    };
  • trunk/WebCore/html/HTMLHRElement.idl

    r19024 r21470  
    2020module html {
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLHRElement : HTMLElement {
    22         attribute DOMString align;
     22        attribute [ConvertNullToNullString] DOMString align;
    2323        attribute boolean noShade;
    24         attribute DOMString size;
    25         attribute DOMString width;
     24        attribute [ConvertNullToNullString] DOMString size;
     25        attribute [ConvertNullToNullString] DOMString width;
    2626    };
    2727}
  • trunk/WebCore/html/HTMLHeadElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLHeadElement : HTMLElement {
    23         attribute  DOMString            profile;
     23        attribute  [ConvertNullToNullString] DOMString            profile;
    2424    };
    2525
  • trunk/WebCore/html/HTMLHeadingElement.idl

    r19024 r21470  
    2020module html {
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLHeadingElement : HTMLElement {
    22         attribute DOMString align;
     22        attribute [ConvertNullToNullString] DOMString align;
    2323    };
    2424}
  • trunk/WebCore/html/HTMLHtmlElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLHtmlElement : HTMLElement {
    2323
    24         attribute DOMString version;
     24        attribute [ConvertNullToNullString] DOMString version;
    2525       
    2626    };
  • trunk/WebCore/html/HTMLIFrameElement.idl

    r16098 r21470  
    2323    interface HTMLIFrameElement : HTMLElement {
    2424
    25                  attribute DOMString       align;
    26                  attribute DOMString       frameBorder;
    27                  attribute DOMString       height;
    28                  attribute DOMString       longDesc;
    29                  attribute DOMString       marginHeight;
    30                  attribute DOMString       marginWidth;
    31                  attribute DOMString       name;
    32                  attribute DOMString       scrolling;
    33                  attribute DOMString       src;
    34                  attribute DOMString       width;
     25                 attribute [ConvertNullToNullString] DOMString       align;
     26                 attribute [ConvertNullToNullString] DOMString       frameBorder;
     27                 attribute [ConvertNullToNullString] DOMString       height;
     28                 attribute [ConvertNullToNullString] DOMString       longDesc;
     29                 attribute [ConvertNullToNullString] DOMString       marginHeight;
     30                 attribute [ConvertNullToNullString] DOMString       marginWidth;
     31                 attribute [ConvertNullToNullString] DOMString       name;
     32                 attribute [ConvertNullToNullString] DOMString       scrolling;
     33                 attribute [ConvertNullToNullString] DOMString       src;
     34                 attribute [ConvertNullToNullString] DOMString       width;
    3535        // Introduced in DOM Level 2:
    3636        readonly attribute Document        contentDocument;
  • trunk/WebCore/html/HTMLImageElement.idl

    r20954 r21470  
    2121module html {
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLImageElement : HTMLElement {
    23                  attribute DOMString name;
    24                  attribute DOMString align;
    25                  attribute DOMString alt;
    26                  attribute DOMString border;       
     23                 attribute [ConvertNullToNullString] DOMString name;
     24                 attribute [ConvertNullToNullString] DOMString align;
     25                 attribute [ConvertNullToNullString] DOMString alt;
     26                 attribute [ConvertNullToNullString] DOMString border;       
    2727                 attribute long height;
    2828                 attribute long hspace;
    2929                 attribute boolean isMap;
    30                  attribute DOMString longDesc;
    31                  attribute DOMString src;
    32                  attribute DOMString useMap;
     30                 attribute [ConvertNullToNullString] DOMString longDesc;
     31                 attribute [ConvertNullToNullString] DOMString src;
     32                 attribute [ConvertNullToNullString] DOMString useMap;
    3333                 attribute long vspace;
    3434                 attribute long width;
     
    3636        // Extensions
    3737        readonly attribute boolean complete;
    38                  attribute DOMString lowsrc;
     38                 attribute [ConvertNullToNullString] DOMString lowsrc;
    3939        readonly attribute long naturalHeight;
    4040        readonly attribute long naturalWidth;
  • trunk/WebCore/html/HTMLInputElement.idl

    r21070 r21470  
    4141                 attribute [ConvertNullToNullString] DOMString src;
    4242                 attribute long            tabIndex;
    43                  attribute DOMString      type; // readonly dropped as part of DOM level 2
     43                 attribute [ConvertNullToNullString] DOMString type; // readonly dropped as part of DOM level 2
    4444                 attribute [ConvertNullToNullString] DOMString useMap;
    4545                 attribute [ConvertNullToNullString] DOMString value;
  • trunk/WebCore/html/HTMLIsIndexElement.idl

    r19024 r21470  
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLIsIndexElement : HTMLInputElement {
    2222        readonly attribute HTMLFormElement form;
    23         attribute DOMString prompt;
     23        attribute [ConvertNullToNullString] DOMString prompt;
    2424    };
    2525}
  • trunk/WebCore/html/HTMLLIElement.idl

    r19024 r21470  
    2020module html {
    2121    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLLIElement : HTMLElement {
    22         attribute DOMString type;
     22        attribute [ConvertNullToNullString] DOMString type;
    2323        attribute long value;   
    2424    };
  • trunk/WebCore/html/HTMLLabelElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLLabelElement : HTMLElement {
    2323        readonly attribute HTMLFormElement form;
    24         attribute DOMString accessKey;
    25         attribute DOMString htmlFor;
     24        attribute [ConvertNullToNullString] DOMString accessKey;
     25        attribute [ConvertNullToNullString] DOMString htmlFor;
    2626
    2727        void focus();
  • trunk/WebCore/html/HTMLLegendElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLLegendElement : HTMLElement {
    2323        readonly attribute HTMLFormElement form;
    24         attribute DOMString accessKey;
    25         attribute DOMString align;
     24        attribute [ConvertNullToNullString] DOMString accessKey;
     25        attribute [ConvertNullToNullString] DOMString align;
    2626
    2727        void focus();
  • trunk/WebCore/html/HTMLLinkElement.idl

    r19024 r21470  
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLLinkElement : HTMLElement {
    2424        attribute  boolean              disabled;
    25         attribute  DOMString            charset;
    26         attribute  DOMString            href;
    27         attribute  DOMString            hreflang;
    28         attribute  DOMString            media;
    29         attribute  DOMString            rel;
    30         attribute  DOMString            rev;
    31         attribute  DOMString            target;
    32         attribute  DOMString            type;
     25        attribute  [ConvertNullToNullString] DOMString            charset;
     26        attribute  [ConvertNullToNullString] DOMString            href;
     27        attribute  [ConvertNullToNullString] DOMString            hreflang;
     28        attribute  [ConvertNullToNullString] DOMString            media;
     29        attribute  [ConvertNullToNullString] DOMString            rel;
     30        attribute  [ConvertNullToNullString] DOMString            rev;
     31        attribute  [ConvertNullToNullString] DOMString            target;
     32        attribute  [ConvertNullToNullString] DOMString            type;
    3333
    3434        // DOM Level 2 Style
  • trunk/WebCore/html/HTMLMapElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLMapElement : HTMLElement {
    2323        readonly attribute HTMLCollection areas;
    24         attribute DOMString name;
     24        attribute [ConvertNullToNullString] DOMString name;
    2525    };
    2626}
  • trunk/WebCore/html/HTMLMetaElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLMetaElement : HTMLElement {
    23         attribute  DOMString    content;
    24         attribute  DOMString    httpEquiv;
    25         attribute  DOMString    name;
    26         attribute  DOMString    scheme;
     23        attribute  [ConvertNullToNullString] DOMString    content;
     24        attribute  [ConvertNullToNullString] DOMString    httpEquiv;
     25        attribute  [ConvertNullToNullString] DOMString    name;
     26        attribute  [ConvertNullToNullString] DOMString    scheme;
    2727    };
    2828
  • trunk/WebCore/html/HTMLModElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLModElement : HTMLElement {
    23         attribute DOMString cite;
    24         attribute DOMString dateTime;
     23        attribute [ConvertNullToNullString] DOMString cite;
     24        attribute [ConvertNullToNullString] DOMString dateTime;
    2525    };
    2626   
  • trunk/WebCore/html/HTMLOListElement.idl

    r19024 r21470  
    2323        attribute boolean compact;
    2424        attribute long start;
    25         attribute DOMString type;
     25        attribute [ConvertNullToNullString] DOMString type;
    2626    };
    2727
  • trunk/WebCore/html/HTMLObjectElement.idl

    r16947 r21470  
    2424
    2525        readonly attribute HTMLFormElement form;
    26                  attribute DOMString       code;
    27                  attribute DOMString       align;
    28                  attribute DOMString       archive;
    29                  attribute DOMString       border;
    30                  attribute DOMString       codeBase;
    31                  attribute DOMString       codeType;
    32                  attribute DOMString       data;
     26                 attribute [ConvertNullToNullString] DOMString       code;
     27                 attribute [ConvertNullToNullString] DOMString       align;
     28                 attribute [ConvertNullToNullString] DOMString       archive;
     29                 attribute [ConvertNullToNullString] DOMString       border;
     30                 attribute [ConvertNullToNullString] DOMString       codeBase;
     31                 attribute [ConvertNullToNullString] DOMString       codeType;
     32                 attribute [ConvertNullToNullString] DOMString       data;
    3333                 attribute boolean         declare;
    34                  attribute DOMString       height;
     34                 attribute [ConvertNullToNullString] DOMString       height;
    3535                 attribute long            hspace;
    36                  attribute DOMString       name;
    37                  attribute DOMString       standby;
     36                 attribute [ConvertNullToNullString] DOMString       name;
     37                 attribute [ConvertNullToNullString] DOMString       standby;
    3838                 attribute long            tabIndex;
    39                  attribute DOMString       type;
    40                  attribute DOMString       useMap;
     39                 attribute [ConvertNullToNullString] DOMString       type;
     40                 attribute [ConvertNullToNullString] DOMString       useMap;
    4141                 attribute long            vspace;
    42                  attribute DOMString       width;
     42                 attribute [ConvertNullToNullString] DOMString       width;
    4343        // Introduced in DOM Level 2:
    4444        readonly attribute Document        contentDocument;
  • trunk/WebCore/html/HTMLOptGroupElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLOptGroupElement : HTMLElement {
    2323        attribute  boolean              disabled;
    24         attribute  DOMString            label;
     24        attribute  [ConvertNullToNullString] DOMString            label;
    2525    };
    2626
  • trunk/WebCore/html/HTMLOptionElement.idl

    r16860 r21470  
    2525                 attribute  boolean              defaultSelected;
    2626#if defined(LANGUAGE_JAVASCRIPT)
    27                  attribute  DOMString            text
     27                 attribute  [ConvertNullToNullString] DOMString            text
    2828                     setter raises(DOMException);
    2929                 attribute  long                 index
     
    3434#endif
    3535                 attribute  boolean              disabled;
    36                  attribute  DOMString            label;
     36                 attribute  [ConvertNullToNullString] DOMString            label;
    3737                 attribute  boolean              selected;
    38                  attribute  DOMString            value;
     38                 attribute  [ConvertNullToNullString] DOMString            value;
    3939    };
    4040
  • trunk/WebCore/html/HTMLParagraphElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLParagraphElement : HTMLElement {
    23         attribute DOMString align;
     23        attribute [ConvertNullToNullString] DOMString align;
    2424    };
    2525
  • trunk/WebCore/html/HTMLParamElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLParamElement : HTMLElement {
    23         attribute DOMString name;
    24         attribute DOMString type;
    25         attribute DOMString value;
    26         attribute DOMString valueType;
     23        attribute [ConvertNullToNullString] DOMString name;
     24        attribute [ConvertNullToNullString] DOMString type;
     25        attribute [ConvertNullToNullString] DOMString value;
     26        attribute [ConvertNullToNullString] DOMString valueType;
    2727    };
    2828
  • trunk/WebCore/html/HTMLQuoteElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLQuoteElement : HTMLElement {
    23         attribute DOMString cite;
     23        attribute [ConvertNullToNullString] DOMString cite;
    2424    };
    2525}
  • trunk/WebCore/html/HTMLScriptElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLScriptElement : HTMLElement {
    23         attribute DOMString text;
    24         attribute DOMString htmlFor;
    25         attribute DOMString event;
    26         attribute DOMString charset;
     23        attribute [ConvertNullToNullString] DOMString text;
     24        attribute [ConvertNullToNullString] DOMString htmlFor;
     25        attribute [ConvertNullToNullString] DOMString event;
     26        attribute [ConvertNullToNullString] DOMString charset;
    2727        attribute boolean defer;
    28         attribute DOMString src;
    29         attribute DOMString type;
     28        attribute [ConvertNullToNullString] DOMString src;
     29        attribute [ConvertNullToNullString] DOMString type;
    3030    };
    3131}
  • trunk/WebCore/html/HTMLSelectElement.idl

    r19777 r21470  
    2525        readonly attribute DOMString       type;
    2626                 attribute long            selectedIndex;
    27                  attribute DOMString       value;
     27                 attribute [ConvertNullToNullString] DOMString       value;
    2828       
    2929        // Modified in DOM Level 2:
     
    4242                 attribute boolean         disabled;
    4343                 attribute boolean         multiple;
    44                  attribute DOMString       name;
     44                 attribute [ConvertNullToNullString] DOMString       name;
    4545                 attribute long            size;
    4646                 attribute long            tabIndex;
  • trunk/WebCore/html/HTMLStyleElement.idl

    r19024 r21470  
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLStyleElement : HTMLElement {
    2424        attribute  boolean              disabled;
    25         attribute  DOMString            media;
    26         attribute  DOMString            type;
     25        attribute  [ConvertNullToNullString] DOMString            media;
     26        attribute  [ConvertNullToNullString] DOMString            type;
    2727       
    2828        // DOM Level 2 Style
  • trunk/WebCore/html/HTMLTableCaptionElement.idl

    r16098 r21470  
    2323    interface HTMLTableCaptionElement : HTMLElement {
    2424
    25         attribute DOMString       align;
     25        attribute [ConvertNullToNullString] DOMString       align;
    2626
    2727    };
  • trunk/WebCore/html/HTMLTableCellElement.idl

    r16098 r21470  
    2424
    2525        readonly attribute long            cellIndex;
    26                  attribute DOMString       abbr;
    27                  attribute DOMString       align;
    28                  attribute DOMString       axis;
    29                  attribute DOMString       bgColor;
    30                  attribute DOMString       ch;
    31                  attribute DOMString       chOff;
     26                 attribute [ConvertNullToNullString] DOMString       abbr;
     27                 attribute [ConvertNullToNullString] DOMString       align;
     28                 attribute [ConvertNullToNullString] DOMString       axis;
     29                 attribute [ConvertNullToNullString] DOMString       bgColor;
     30                 attribute [ConvertNullToNullString] DOMString       ch;
     31                 attribute [ConvertNullToNullString] DOMString       chOff;
    3232                 attribute long            colSpan;
    33                  attribute DOMString       headers;
    34                  attribute DOMString       height;
     33                 attribute [ConvertNullToNullString] DOMString       headers;
     34                 attribute [ConvertNullToNullString] DOMString       height;
    3535                 attribute boolean         noWrap;
    3636                 attribute long            rowSpan;
    37                  attribute DOMString       scope;
    38                  attribute DOMString       vAlign;
    39                  attribute DOMString       width;
     37                 attribute [ConvertNullToNullString] DOMString       scope;
     38                 attribute [ConvertNullToNullString] DOMString       vAlign;
     39                 attribute [ConvertNullToNullString] DOMString       width;
    4040
    4141    };
  • trunk/WebCore/html/HTMLTableColElement.idl

    r16098 r21470  
    2323    interface HTMLTableColElement : HTMLElement {
    2424
    25         attribute DOMString       align;
    26         attribute DOMString       ch;
    27         attribute DOMString       chOff;
     25        attribute [ConvertNullToNullString] DOMString       align;
     26        attribute [ConvertNullToNullString] DOMString       ch;
     27        attribute [ConvertNullToNullString] DOMString       chOff;
    2828        attribute long            span;
    29         attribute DOMString       vAlign;
    30         attribute DOMString       width;
     29        attribute [ConvertNullToNullString] DOMString       vAlign;
     30        attribute [ConvertNullToNullString] DOMString       width;
    3131
    3232    };
  • trunk/WebCore/html/HTMLTableElement.idl

    r16134 r21470  
    3434        readonly attribute HTMLCollection rows;
    3535        readonly attribute HTMLCollection tBodies;
    36                  attribute DOMString align;
    37                  attribute DOMString bgColor;
    38                  attribute DOMString border;
    39                  attribute DOMString cellPadding;
    40                  attribute DOMString cellSpacing;
     36                 attribute [ConvertNullToNullString] DOMString align;
     37                 attribute [ConvertNullToNullString] DOMString bgColor;
     38                 attribute [ConvertNullToNullString] DOMString border;
     39                 attribute [ConvertNullToNullString] DOMString cellPadding;
     40                 attribute [ConvertNullToNullString] DOMString cellSpacing;
    4141
    4242        // FIXME: the obj-c attribute is called frameBorders
    43                  attribute DOMString frame;
     43                 attribute [ConvertNullToNullString] DOMString frame;
    4444
    45                  attribute DOMString rules;
    46                  attribute DOMString summary;
    47                  attribute DOMString width;
     45                 attribute [ConvertNullToNullString] DOMString rules;
     46                 attribute [ConvertNullToNullString] DOMString summary;
     47                 attribute [ConvertNullToNullString] DOMString width;
    4848
    4949        HTMLElement        createTHead();
  • trunk/WebCore/html/HTMLTableRowElement.idl

    r16134 r21470  
    2626        readonly attribute long            sectionRowIndex;
    2727        readonly attribute HTMLCollection  cells;
    28                  attribute DOMString       align;
    29                  attribute DOMString       bgColor;
    30                  attribute DOMString       ch;
    31                  attribute DOMString       chOff;
    32                  attribute DOMString       vAlign;
     28                 attribute [ConvertNullToNullString] DOMString       align;
     29                 attribute [ConvertNullToNullString] DOMString       bgColor;
     30                 attribute [ConvertNullToNullString] DOMString       ch;
     31                 attribute [ConvertNullToNullString] DOMString       chOff;
     32                 attribute [ConvertNullToNullString] DOMString       vAlign;
    3333
    3434        HTMLElement        insertCell(in long index)
  • trunk/WebCore/html/HTMLTableSectionElement.idl

    r16134 r21470  
    2323    interface HTMLTableSectionElement : HTMLElement {
    2424
    25                  attribute DOMString       align;
    26                  attribute DOMString       ch;
    27                  attribute DOMString       chOff;
    28                  attribute DOMString       vAlign;
     25                 attribute [ConvertNullToNullString] DOMString       align;
     26                 attribute [ConvertNullToNullString] DOMString       ch;
     27                 attribute [ConvertNullToNullString] DOMString       chOff;
     28                 attribute [ConvertNullToNullString] DOMString       vAlign;
    2929        readonly attribute HTMLCollection  rows;
    3030
  • trunk/WebCore/html/HTMLTextAreaElement.idl

    r19024 r21470  
    2222
    2323    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLTextAreaElement : HTMLElement {
    24                  attribute  DOMString            defaultValue;
     24                 attribute  [ConvertNullToNullString] DOMString            defaultValue;
    2525        readonly attribute  HTMLFormElement      form;
    26                  attribute  DOMString            accessKey;
     26                 attribute  [ConvertNullToNullString] DOMString            accessKey;
    2727                 attribute  long                 cols;
    2828                 attribute  boolean              disabled;
    29                  attribute  DOMString            name;
     29                 attribute  [ConvertNullToNullString] DOMString            name;
    3030                 attribute  boolean              readOnly;
    3131                 attribute  long                 rows;
    3232                 attribute  long                 tabIndex;
    3333        readonly attribute  DOMString            type;
    34                  attribute  DOMString            value;
     34                 attribute  [ConvertNullToNullString] DOMString            value;
    3535       
    3636        void     blur();
  • trunk/WebCore/html/HTMLTitleElement.idl

    r19024 r21470  
    2121
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLTitleElement : HTMLElement {
    23         attribute  DOMString            text;
     23        attribute  [ConvertNullToNullString] DOMString            text;
    2424    };
    2525
  • trunk/WebCore/html/HTMLUListElement.idl

    r19024 r21470  
    2222    interface [LegacyParent=KJS::JSHTMLElement, GenerateConstructor] HTMLUListElement : HTMLElement {
    2323        attribute boolean compact;
    24         attribute DOMString type;
     24        attribute [ConvertNullToNullString] DOMString type;
    2525    };
    2626
Note: See TracChangeset for help on using the changeset viewer.