From 88c3a164bf16ec8228632de02825bb6f7cb57e03 Mon Sep 17 00:00:00 2001 From: Chaoyang Jia Date: Fri, 2 Oct 2015 18:23:40 +0800 Subject: [PATCH] Make sure input.size is attribute. - Will get IndexSizeError when set input.size="auto". - Make 'size' an attribute, so that always use dom.setAttribute. --- packages/dom-helper/lib/prop.js | 5 ++++- packages/dom-helper/tests/prop-test.js | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/dom-helper/lib/prop.js b/packages/dom-helper/lib/prop.js index c4e8ea0a..a34058b9 100644 --- a/packages/dom-helper/lib/prop.js +++ b/packages/dom-helper/lib/prop.js @@ -57,7 +57,10 @@ var ATTR_OVERRIDES = { // Chrome 46.0.2464.0: 'autocorrect' in document.createElement('input') === false // Safari 8.0.7: 'autocorrect' in document.createElement('input') === false // Mobile Safari (iOS 8.4 simulator): 'autocorrect' in document.createElement('input') === true - autocorrect: true + autocorrect: true, + // Will throw an exception(https://github.com/emberjs/ember.js/issues/12413), + // if you set input.size = 'auto' + size: true }, // element.form is actually a legitimate readOnly property, that is to be diff --git a/packages/dom-helper/tests/prop-test.js b/packages/dom-helper/tests/prop-test.js index deff0699..802d4a14 100644 --- a/packages/dom-helper/tests/prop-test.js +++ b/packages/dom-helper/tests/prop-test.js @@ -3,7 +3,7 @@ import { normalizeProperty } from 'dom-helper/prop'; QUnit.module('dom-helper prop'); test('type.attr, for element props that for one reason or another need to be treated as attrs', function() { - expect(13); + expect(14); [ { tagName: 'TEXTAREA', key: 'form' }, @@ -12,6 +12,7 @@ test('type.attr, for element props that for one reason or another need to be tre { tagName: 'INPUT', key: 'list' }, { tagName: 'INPUT', key: 'form' }, { tagName: 'INPUT', key: 'autocorrect' }, + { tagName: 'INPUT', key: 'size' }, { tagName: 'OPTION', key: 'form' }, { tagName: 'INPUT', key: 'form' }, { tagName: 'BUTTON', key: 'form' },