Index: JavaScript.tmbundle/Syntaxes/JavaScript.plist
===================================================================
--- JavaScript.tmbundle/Syntaxes/JavaScript.plist	(revision 4661)
+++ JavaScript.tmbundle/Syntaxes/JavaScript.plist	(working copy)
@@ -75,14 +75,60 @@
 				<key>1</key>
 				<dict>
 					<key>name</key>
+					<string>string.quoted.single.js</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>string.quoted.double.js</string>
+				</dict>
+				<key>3</key>
+				<dict>
+					<key>name</key>
+					<string>storage.type.function.js</string>
+				</dict>
+				<key>5</key>
+				<dict>
+					<key>name</key>
 					<string>entity.name.function.js</string>
 				</dict>
+				<key>6</key>
+				<dict>
+					<key>name</key>
+					<string>variable.parameter.function.js</string>
+				</dict>
+			</dict>
+			<key>comment</key>
+			<string>Attempt to match "foo": function or 'foo': function</string>
+			<key>match</key>
+			<string>((')?(")?(.*?)(\2|\3)):\s*\b(function)?\s*\((.*?)\)</string>
+			<key>name</key>
+			<string>meta.function.js</string>
+		</dict>
+		<dict>
+			<key>captures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.class.js</string>
+				</dict>
 				<key>2</key>
 				<dict>
 					<key>name</key>
+					<string>support.constant.js</string>
+				</dict>
+				<key>4</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.function.js</string>
+				</dict>
+				<key>5</key>
+				<dict>
+					<key>name</key>
 					<string>storage.type.function.js</string>
 				</dict>
-				<key>3</key>
+				<key>6</key>
 				<dict>
 					<key>name</key>
 					<string>variable.parameter.function.js</string>
@@ -91,12 +137,31 @@
 			<key>comment</key>
 			<string>match stuff like: Sound.prototype.play = function() { … }</string>
 			<key>match</key>
-			<string>\b([a-zA-Z_?\.$]+\w*)\s+=\s+\b(function)?\s*\((.*?)\)</string>
+			<string>([a-zA-Z_?\.$]+\w*)\.(prototype)\.([a-zA-Z_0-9]+)\s*=\s*\b(function)?\s*\((.*?)\)</string>
 			<key>name</key>
 			<string>meta.function.js</string>
 		</dict>
 		<dict>
+			<key>captures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>keyword.operator.new.js</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.class.js</string>
+				</dict>
+			</dict>
 			<key>match</key>
+			<string>(new)\s+(\w+\.?\w*)</string>
+			<key>name</key>
+			<string>meta.class.instance.constructor</string>
+		</dict>
+		<dict>
+			<key>match</key>
 			<string>\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?))\b</string>
 			<key>name</key>
 			<string>constant.numeric.js</string>
@@ -322,6 +387,37 @@
 			<key>name</key>
 			<string>meta.brace.square.js</string>
 		</dict>
+		<dict>
+			<key>match</key>
+			<string>\b(console)\b</string>
+			<key>name</key>
+			<string>support.variable.js.firebug</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>\.(warn|info|log|error|timeEnd|time|assert)\b</string>
+			<key>name</key>
+			<string>support.function.js.firebug</string>
+		</dict>
+		<dict>
+			<key>captures</key>
+			<dict>
+				<key>1</key>
+				<dict>
+					<key>name</key>
+					<string>entity.name.class.js</string>
+				</dict>
+				<key>2</key>
+				<dict>
+					<key>name</key>
+					<string>support.constant.js</string>
+				</dict>
+			</dict>
+			<key>match</key>
+			<string>(\w+)\.(prototype)\b</string>
+			<key>name</key>
+			<string>meta.prototype</string>
+		</dict>
 	</array>
 	<key>scopeName</key>
 	<string>source.js</string>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Banned.tmPreferences
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Banned.tmPreferences	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Banned.tmPreferences	(working copy)
@@ -5,7 +5,7 @@
 	<key>name</key>
 	<string>Symbol List Banned</string>
 	<key>scope</key>
-	<string>source.js.prototype meta.property.function entity.name.function</string>
+	<string>source.js.prototype meta.property.function</string>
 	<key>settings</key>
 	<dict>
 		<key>showInSymbolList</key>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 1.tmPreferences
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 1.tmPreferences	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 1.tmPreferences	(working copy)
@@ -5,7 +5,7 @@
 	<key>name</key>
 	<string>Symbol List Sub 1</string>
 	<key>scope</key>
-	<string>source.js.prototype object.property.function -(meta.group meta.group)</string>
+	<string>source.js.prototype entity.function -(meta.group meta.group)</string>
 	<key>settings</key>
 	<dict>
 		<key>showInSymbolList</key>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 2.tmPreferences
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 2.tmPreferences	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/Preferences/Symbol List Sub 2.tmPreferences	(working copy)
@@ -5,7 +5,7 @@
 	<key>name</key>
 	<string>Symbol List Sub 2</string>
 	<key>scope</key>
-	<string>source.js.prototype meta.group meta.group object.property.function</string>
+	<string>source.js.prototype meta.group meta.group entity.name.function</string>
 	<key>settings</key>
 	<dict>
 		<key>showInSymbolList</key>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/info.plist
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/info.plist	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/info.plist	(working copy)
@@ -182,7 +182,6 @@
 	<key>ordering</key>
 	<array>
 		<string>D84F2D85-BE10-416A-BD9D-076AE6FDB436</string>
-		<string>A3445CDA-CD0A-4F0E-A83F-0C7D4954F812</string>
 		<string>D6B9EA9B-DD59-4123-BEDA-27F4B9F60A3B</string>
 		<string>BA4A9163-94FC-4699-8945-AB37DFB676AE</string>
 		<string>E334D752-6D6A-4A59-AE9D-A78E5ED8ECFE</string>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype Bracketed.tmLanguage
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype Bracketed.tmLanguage	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype Bracketed.tmLanguage	(working copy)
@@ -116,7 +116,7 @@
 					<key>match</key>
 					<string>@(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript_build|_jscript_version|_jscript|_debug|_fast|[a-zA-Z]\w+)</string>
 					<key>name</key>
-					<string>variable.conditional.js</string>
+					<string>variable.other.conditional.js</string>
 				</dict>
 			</array>
 		</dict>
@@ -170,7 +170,7 @@
 								<key>1</key>
 								<dict>
 									<key>name</key>
-									<string>invalid.delimiter.object.comma</string>
+									<string>invalid.illegal.delimiter.object.comma</string>
 								</dict>
 							</dict>
 							<key>match</key>
Index: JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype.tmLanguage
===================================================================
--- JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype.tmLanguage	(revision 4661)
+++ JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript + Prototype.tmLanguage	(working copy)
@@ -15,148 +15,21 @@
 	<key>patterns</key>
 	<array>
 		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>string.quoted.js.prototype</string>
-				</dict>
-				<key>3</key>
-				<dict>
-					<key>name</key>
-					<string>object.property.function.js.prototype</string>
-				</dict>
-				<key>5</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.js.prototype</string>
-				</dict>
-				<key>6</key>
-				<dict>
-					<key>name</key>
-					<string>variable.parameter.function.js.prototype</string>
-				</dict>
-			</dict>
-			<key>comment</key>
-			<string>Attempt to match "foo": function</string>
 			<key>match</key>
-			<string>(('|")(.*?)(\2)):\s*\b(function)?\s*\((.*?)\)</string>
-			<key>name</key>
-			<string>meta.property.function.js.prototype</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>object.property.function.js.prototype</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.js.prototype</string>
-				</dict>
-				<key>3</key>
-				<dict>
-					<key>name</key>
-					<string>variable.parameter.function.js.prototype</string>
-				</dict>
-			</dict>
-			<key>comment</key>
-			<string>Attempt to match foo: function</string>
-			<key>match</key>
-			<string>\b([a-zA-Z_?\.]+\w*):\s*\b(function)?\s*\((.*?)\)</string>
-			<key>name</key>
-			<string>meta.property.function.js.prototype</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>keyword.operator.new.js.prototype</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.instance.js.prototype</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>(new)\s+(\w+\.?\w*)</string>
-			<key>name</key>
-			<string>meta.class.instance.constructor</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.class.js.prototype</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.class.js.prototype</string>
-				</dict>
-			</dict>
-			<key>comment</key>
-			<string>match stuff like: Sound.prototype.play.prototype = { … }</string>
-			<key>match</key>
-			<string>([a-zA-Z_?\.$]+\w*)\.(prototype)\s*=\s*</string>
-			<key>name</key>
-			<string>meta.class.js.prototype</string>
-		</dict>
-		<dict>
-			<key>match</key>
 			<string>\b(Prototype|Class|Abstract|Try|PeriodicalExecuter|Enumerable|Hash|ObjectRange|Element|Ajax|Responders|Base|Request|Updater|PeriodicalUpdater|Toggle|Insertion|Before|Top|Bottom|After|ClassNames|Form|Serializers|TimedObserver|Observer|EventObserver|Event|Position|Effect|Effect2|Transitions|ScopedQueue|Queues|DefaultOptions|Parallel|Opacity|Move|MoveBy|Scale|Highlight|ScrollTo|Fade|Appear|Puff|BlindUp|BlindDown|SwitchOff|DropOut|Shake|SlideDown|SlideUp|Squish|Grow|Shrink|Pulsate|Fold|console)\b</string>
 			<key>name</key>
-			<string>support.class.prototype.js</string>
+			<string>support.class.js.prototype</string>
 		</dict>
 		<dict>
 			<key>match</key>
-			<string>\b(Version|ScriptFragment|emptyFunction|K|create|toColorPart|succ|times|these|initialize|registerCallback|onTimerEvent|stripTags|stripScripts|extractScripts|evalScripts|escapeHTML|unescapeHTML|toQueryParams|toArray|camelize|inspect|each|all|any|collect|detect|findAll|grep|include|inject|invoke|max|min|partition|pluck|reject|sortBy|toArray|zip|inspect|map|find|select|member|entries|_each|_reverse|reverse|clear|first|last|compact|flatten|without|indexOf|reverse|shift|inspect|keys|values|merge|toQueryString|inspect|include|getTransport|activeRequestCount|responders|register|unregister|dispatch|onComplete|setOptions|responseIsSuccess|responseIsFailure|request|setRequestHeaders|onStateChange|header|evalJSON|evalResponse|respondToReadyState|dispatchException|updateContent|start|stop|updateComplete|toggle|hide|show|remove|update|getHeight|classNames|hasClassName|addClassName|removeClassName|cleanWhitespace|empty|scrollTo|getStyle|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|undoClipping|contentFromAnonymousTable|initializeRange|insertContent|set|add|toString|focus|present|activate|serialize|getElements|getInputs|disable|enable|findFirstElement|focusFirstElement|reset|getValue|input|inputSelector|textarea|selectOne|selectMany|onElementEvent|registerFormCallbacks|element|isLeftClick|pointerX|pointerY|findElement|observers|unloadCache|observe|stopObserving|includeScrollOffsets|prepare|realOffset|cumulativeOffset|positionedOffset|offsetParent|within|withinIncludingScrolloffsets|overlap|clone|page|clone|absolutize|relativize)\b</string>
+			<string>\b(Version|ScriptFragment|emptyFunction|K|create|toColorPart|succ|times|these|initialize|registerCallback|onTimerEvent|stripTags|stripScripts|extractScripts|evalScripts|escapeHTML|unescapeHTML|toQueryParams|toArray|camelize|inspect|each|all|any|collect|detect|findAll|grep|include|inject|invoke|max|min|partition|pluck|reject|sortBy|toArray|zip|inspect|map|find|select|member|entries|_each|_reverse|reverse|clear|first|last|compact|flatten|without|indexOf|reverse|shift|inspect|keys|values|merge|toQueryString|inspect|include|getTransport|activeRequestCount|responders|register|unregister|dispatch|onComplete|setOptions|responseIsSuccess|responseIsSuccesseIsFailure|request|setRequestHeaders|onStateChange|header|evalJSON|evalResponse|respondToReadyState|dispatchException|updateContent|start|stop|updateComplete|toggle|hide|show|remove|update|getHeight|classNames|hasClassName|addClassName|removeClassName|cleanWhitespace|empty|scrollTo|getStyle|setStyle|getDimensions|makePositioned|undoPositioned|makeClipping|undoClipping|contentFromAnonymousTable|initializeRange|insertContent|set|add|toString|focus|present|activate|serialize|getElements|getInputs|disable|enable|findFirstElement|focusFirstElement|reset|getValue|input|inputSelector|textarea|selectOne|selectMany|onElementEvent|registerFormCallbacks|element|isLeftClick|pointerX|pointerY|findElement|observers|unloadCache|observe|stopObserving|includeScrollOffsets|prepare|realOffset|cumulativeOffset|positionedOffset|offsetParent|within|withinIncludingScrolloffsets|overlap|clone|page|clone|absolutize|relativize)\b</string>
 			<key>name</key>
 			<string>support.function.js.prototype</string>
 		</dict>
 		<dict>
-			<key>match</key>
-			<string>\w+.prototype\b</string>
-			<key>name</key>
-			<string>entity.name.class.js.prototype</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\bthis\b</string>
-			<key>name</key>
-			<string>constant.language.this.js.prototype</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(console)\b</string>
-			<key>name</key>
-			<string>entity.name.object.js.firebug</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\.(warn|info|log|error|timeEnd|time|assert)\b</string>
-			<key>name</key>
-			<string>support.function.js.firebug</string>
-		</dict>
-		<dict>
 			<key>include</key>
 			<string>source.js</string>
 		</dict>
-		<dict>
-			<key>match</key>
-			<string>((?&lt;=var\s)\b[a-zA-Z]\w*\b|\b[a-zA-Z]\w*\b(?=(\[|\s*(&amp;|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|&lt;=|&gt;=|&lt;&lt;=|&gt;&gt;=|&gt;&gt;&gt;=|&lt;&gt;|&lt;|&gt;|!|&amp;&amp;|\|\||\?\:|\*=|/=|%=|\+=|\-=|&amp;=|\^=))))</string>
-			<key>name</key>
-			<string>variable.js.prototype</string>
-		</dict>
 	</array>
 	<key>scopeName</key>
 	<string>source.js.prototype</string>