| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 unsigned length = propertyName.length(); | 110 unsigned length = propertyName.length(); |
| 111 bool hadPixelOrPosPrefix = false; | 111 bool hadPixelOrPosPrefix = false; |
| 112 if (!length) | 112 if (!length) |
| 113 return 0; | 113 return 0; |
| 114 | 114 |
| 115 StringBuilder builder; | 115 StringBuilder builder; |
| 116 builder.reserveCapacity(length); | 116 builder.reserveCapacity(length); |
| 117 | 117 |
| 118 unsigned i = 0; | 118 unsigned i = 0; |
| 119 | 119 |
| 120 if (hasCSSPropertyNamePrefix(propertyName, "css")) | 120 if (hasCSSPropertyNamePrefix(propertyName, "css")) { |
| 121 i += 3; | 121 i += 3; |
| 122 else if (hasCSSPropertyNamePrefix(propertyName, "pixel")) { | 122 } else if (hasCSSPropertyNamePrefix(propertyName, "pixel")) { |
| 123 i += 5; | 123 i += 5; |
| 124 hadPixelOrPosPrefix = true; | 124 hadPixelOrPosPrefix = true; |
| 125 } else if (hasCSSPropertyNamePrefix(propertyName, "pos")) { | 125 } else if (hasCSSPropertyNamePrefix(propertyName, "pos")) { |
| 126 i += 3; | 126 i += 3; |
| 127 hadPixelOrPosPrefix = true; | 127 hadPixelOrPosPrefix = true; |
| 128 } else if (hasCSSPropertyNamePrefix(propertyName, "webkit")) | 128 } else if (hasCSSPropertyNamePrefix(propertyName, "webkit")) { |
| 129 builder.append('-'); | 129 builder.append('-'); |
| 130 else if (isASCIIUpper(propertyName[0])) | 130 } else if (hasCSSPropertyNamePrefix(propertyName, "internal") || isASCII
Upper(propertyName[0])) { |
| 131 return 0; | 131 return 0; |
| 132 } |
| 132 | 133 |
| 133 builder.append(toASCIILower(propertyName[i++])); | 134 builder.append(toASCIILower(propertyName[i++])); |
| 134 | 135 |
| 135 for (; i < length; ++i) { | 136 for (; i < length; ++i) { |
| 136 UChar c = propertyName[i]; | 137 UChar c = propertyName[i]; |
| 137 if (!isASCIIUpper(c)) | 138 if (!isASCIIUpper(c)) |
| 138 builder.append(c); | 139 builder.append(c); |
| 139 else { | 140 else { |
| 140 builder.append('-'); | 141 builder.append('-'); |
| 141 builder.append(toASCIILower(c)); | 142 builder.append(toASCIILower(c)); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 156 | 157 |
| 157 void V8CSSStyleDeclaration::namedPropertyEnumeratorCustom(const v8::PropertyCall
backInfo<v8::Array>& info) | 158 void V8CSSStyleDeclaration::namedPropertyEnumeratorCustom(const v8::PropertyCall
backInfo<v8::Array>& info) |
| 158 { | 159 { |
| 159 typedef Vector<String, numCSSProperties - 1> PreAllocatedPropertyVector; | 160 typedef Vector<String, numCSSProperties - 1> PreAllocatedPropertyVector; |
| 160 DEFINE_STATIC_LOCAL(PreAllocatedPropertyVector, propertyNames, ()); | 161 DEFINE_STATIC_LOCAL(PreAllocatedPropertyVector, propertyNames, ()); |
| 161 static unsigned propertyNamesLength = 0; | 162 static unsigned propertyNamesLength = 0; |
| 162 | 163 |
| 163 if (propertyNames.isEmpty()) { | 164 if (propertyNames.isEmpty()) { |
| 164 for (int id = firstCSSProperty; id <= lastCSSProperty; ++id) { | 165 for (int id = firstCSSProperty; id <= lastCSSProperty; ++id) { |
| 165 CSSPropertyID propertyId = static_cast<CSSPropertyID>(id); | 166 CSSPropertyID propertyId = static_cast<CSSPropertyID>(id); |
| 166 if (RuntimeCSSEnabled::isCSSPropertyEnabled(propertyId)) | 167 if (RuntimeCSSEnabled::isCSSPropertyEnabled(propertyId)) { |
| 167 propertyNames.append(getJSPropertyName(propertyId)); | 168 String propertyName = getJSPropertyName(propertyId); |
| 169 if (!hasCSSPropertyNamePrefix(propertyName, "internal")) |
| 170 propertyNames.append(propertyName); |
| 171 } |
| 168 } | 172 } |
| 169 sort(propertyNames.begin(), propertyNames.end(), codePointCompareLessTha
n); | 173 sort(propertyNames.begin(), propertyNames.end(), codePointCompareLessTha
n); |
| 170 propertyNamesLength = propertyNames.size(); | 174 propertyNamesLength = propertyNames.size(); |
| 171 } | 175 } |
| 172 | 176 |
| 173 v8::Handle<v8::Array> properties = v8::Array::New(propertyNamesLength); | 177 v8::Handle<v8::Array> properties = v8::Array::New(propertyNamesLength); |
| 174 for (unsigned i = 0; i < propertyNamesLength; ++i) { | 178 for (unsigned i = 0; i < propertyNamesLength; ++i) { |
| 175 String key = propertyNames.at(i); | 179 String key = propertyNames.at(i); |
| 176 ASSERT(!key.isNull()); | 180 ASSERT(!key.isNull()); |
| 177 properties->Set(v8::Integer::New(i, info.GetIsolate()), v8String(key, in
fo.GetIsolate())); | 181 properties->Set(v8::Integer::New(i, info.GetIsolate()), v8String(key, in
fo.GetIsolate())); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 | 243 |
| 240 if (ec) { | 244 if (ec) { |
| 241 setDOMException(ec, info.GetIsolate()); | 245 setDOMException(ec, info.GetIsolate()); |
| 242 return; | 246 return; |
| 243 } | 247 } |
| 244 | 248 |
| 245 v8SetReturnValue(info, value); | 249 v8SetReturnValue(info, value); |
| 246 } | 250 } |
| 247 | 251 |
| 248 } // namespace WebCore | 252 } // namespace WebCore |
| OLD | NEW |