diff options
| author | Steve Block <steveblock@google.com> | 2011-06-08 08:26:01 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-08 08:26:01 -0700 |
| commit | 3742ac093d35d923c81693096ab6671e9b147700 (patch) | |
| tree | c2add9100f789dad45ef1ec5328bddde02c47a4c /Source/WebCore/inspector/front-end/utilities.js | |
| parent | 901401d90459bc22580842455d4588b9a697514d (diff) | |
| parent | e5926f4a0d6adc9ad4a75824129f117181953560 (diff) | |
| download | external_webkit-3742ac093d35d923c81693096ab6671e9b147700.zip external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.gz external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.bz2 | |
Merge changes I55c6d71a,Ifb3277d4,Ia1b847a2,I7ba9cf3f,Ida2b2a8a,I1280ec90,I72f818d5,I2e3b588b,I9a4e6289,Ia724c78b,Icd8612c8,Ie31b15d7,Ie125edae,I77941a88,I89dae78b,I3516e5ca,I1a4c17b5,I2c4ecc1a,I9c8e6537,Ifac13115,Ie1f80e09,Ia541ed77,I60ce9d78
* changes:
Merge WebKit at r82507: Update ThirdPartyProject.prop
Merge WebKit at r82507: Cherry-pick change r88166 to add INSPECTOR guards to ScriptProfiler
Merge WebKit at r82507: Work around a V8 bug
Merge WebKit at r82507: JNIType renamed to JavaType
Merge WebKit at r82507: IconDatabaseClient interface expanded
Merge WebKit at r82507: Don't use new loss-free code path in HTMLCanvasElement::toDataURL()
Merge WebKit at r82507: IcondDatabaseBase::iconForPageURL() renamed
Merge WebKit at r82507: IconDatabaseBase::Open() signature changed
Merge WebKit at r82507: Node::isContentEditable() renamed
Merge WebKit at r82507: Use icon database through IconDatabaseBase
Merge WebKit at r82507: toInputElement() is now a member of Node
Merge WebKit at r82507: FrameLoaderClient::objectContentType() signature changed
Merge WebKit at r82507: StringImpl::computeHash() removed
Merge WebKit at r82507: Stub out FontPlatformData::setOrientation()
Merge WebKit at r82507: Path::strokeBoundingRect() is now const
Merge WebKit at r82507: Add missing UnusedParam.h include in ApplicationCacheGroup.cpp
Merge WebKit at r82507: Continue to use Android's version of FontPlatformData.h
Merge WebKit at r82507: Update signature of FontCustomPlatformData::fontPlatformData()
Merge WebKit at r82507: Fix conflicts due to JNI refactoring
Merge WebKit at r82507: Fix conflicts due to new StorageTracker
Merge WebKit at r82507: Fix conflicts
Merge WebKit at r82507: Fix makefiles
Merge WebKit at r82507: Initial merge by git
Diffstat (limited to 'Source/WebCore/inspector/front-end/utilities.js')
| -rw-r--r-- | Source/WebCore/inspector/front-end/utilities.js | 86 |
1 files changed, 31 insertions, 55 deletions
diff --git a/Source/WebCore/inspector/front-end/utilities.js b/Source/WebCore/inspector/front-end/utilities.js index 31a5f0c..fbfdfbb 100644 --- a/Source/WebCore/inspector/front-end/utilities.js +++ b/Source/WebCore/inspector/front-end/utilities.js @@ -156,19 +156,7 @@ Node.prototype.rangeBoundaryForOffset = function(offset) Element.prototype.removeStyleClass = function(className) { - // Test for the simple case first. - if (this.className === className) { - this.className = ""; - return; - } - - var index = this.className.indexOf(className); - if (index === -1) - return; - - this.className = this.className.split(" ").filter(function(s) { - return s && s !== className; - }).join(" "); + this.classList.remove(className); } Element.prototype.removeMatchingStyleClasses = function(classNameRegex) @@ -180,23 +168,12 @@ Element.prototype.removeMatchingStyleClasses = function(classNameRegex) Element.prototype.addStyleClass = function(className) { - if (className && !this.hasStyleClass(className)) - this.className += (this.className.length ? " " + className : className); + this.classList.add(className); } Element.prototype.hasStyleClass = function(className) { - if (!className) - return false; - // Test for the simple case - if (this.className === className) - return true; - - var index = this.className.indexOf(className); - if (index === -1) - return false; - var toTest = " " + this.className + " "; - return toTest.indexOf(" " + className + " ", index) !== -1; + return this.classList.contains(className); } Element.prototype.positionAt = function(x, y) @@ -380,7 +357,6 @@ Node.prototype.isAncestor = function(node) Node.prototype.isDescendant = isDescendantNode; Node.prototype.traverseNextNode = traverseNextNode; Node.prototype.traversePreviousNode = traversePreviousNode; -Node.prototype.onlyTextChild = onlyTextChild; String.prototype.hasSubstring = function(string, caseInsensitive) { @@ -616,19 +592,6 @@ function traversePreviousNode(stayWithin) return this.parentNode; } -function onlyTextChild() -{ - if (!this) - return null; - - var firstChild = this.firstChild; - if (!firstChild || firstChild.nodeType !== Node.TEXT_NODE) - return null; - - var sibling = firstChild.nextSibling; - return sibling ? null : firstChild; -} - function appropriateSelectorForNode(node, justSelector) { if (!node) @@ -822,31 +785,44 @@ Array.convert = function(list) return Array.prototype.slice.call(list); } -function insertionIndexForObjectInListSortedByFunction(anObject, aList, aFunction) +function binarySearch(object, array, comparator) { var first = 0; - var last = aList.length - 1; - var floor = Math.floor; - var mid, c; + var last = array.length - 1; while (first <= last) { - mid = floor((first + last) / 2); - c = aFunction(anObject, aList[mid]); - + var mid = (first + last) >> 1; + var c = comparator(object, array[mid]); if (c > 0) first = mid + 1; else if (c < 0) last = mid - 1; - else { - // Return the first occurance of an item in the list. - while (mid > 0 && aFunction(anObject, aList[mid - 1]) === 0) - mid--; - first = mid; - break; - } + else + return mid; } - return first; + // Return the nearest lesser index, "-1" means "0, "-2" means "1", etc. + return -(first + 1); +} + +Object.defineProperty(Array.prototype, "binaryIndexOf", { value: function(value, comparator) +{ + var result = binarySearch(value, this, comparator); + return result >= 0 ? result : -1; +}}); + +function insertionIndexForObjectInListSortedByFunction(anObject, aList, aFunction) +{ + var index = binarySearch(anObject, aList, aFunction); + if (index < 0) + // See binarySearch implementation. + return -index - 1; + else { + // Return the first occurance of an item in the list. + while (index > 0 && aFunction(anObject, aList[index - 1]) === 0) + index--; + return index; + } } String.sprintf = function(format) |
