ChangeLog-2003-10-25 19.6 KB
Newer Older
darin's avatar
darin committed
1 2 3 4 5 6 7 8 9 10 11 12
2003-01-16  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

	- rolled in a change from the KJS folks

        * kjs/number_object.h: Use ObjectImp *, not Object, for the proto.
        * kjs/number_object.cpp:
        (NumberInstanceImp::NumberInstanceImp): Use ObjectImp *, not Object, for the proto.
        (NumberPrototypeImp::NumberPrototypeImp): Pass ObjectImp.
        (NumberObjectImp::construct): Use ObjectImp.

sheridan's avatar
sheridan committed
13 14
=== Safari-52 ===

darin's avatar
darin committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28
2003-01-14  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

	- rolled in a change from the KJS folks

	Fixes a bug where the date functions would not accept non-strings.
	And provides a bit of a speedup.

        * kjs/date_object.h: Change parameter type for parseDate.
        * kjs/date_object.cpp:
        (DateObjectFuncImp::call): Always call toString, don't check the type.
        (KJS::parseDate): Take a UString parameter, not a String parameter.

29 30 31 32
2003-01-13  Darin Adler  <darin@apple.com>

        * kjs/ustring.h: Fix spelling of occurrence.

darin's avatar
darin committed
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
2003-01-12  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

	- turned more recursion into iteration, and fixed some backwards stuff

        * kjs/grammar.y: Use the normal idiom for CaseClauses and FormalParameterList
	rather than using append().
        * kjs/grammar.cpp: Regenerated.

        * kjs/nodes.h: Change ClauseListNode and ParameterNode to use the normal idiom,
	and got rid of append methods. Also added friend declarations and calls to reverseList().
        * kjs/nodes.cpp:
        (StatListNode::ref): Iteration, not recursion.
        (StatListNode::deref): Iteration, not recursion.
        (StatListNode::execute): Iteration, not recursion.
        (StatListNode::processVarDecls): Iteration, not recursion.
        (CaseClauseNode::reverseList): Added.
        (ClauseListNode::ref): Iteration, not recursion.
        (ClauseListNode::deref): Iteration, not recursion.
        (ClauseListNode::processVarDecls): Iteration, not recursion.
        (CaseBlockNode::reverseLists): Added.
        (ParameterNode::ref): Iteration, not recursion.
        (ParameterNode::deref): Iteration, not recursion.
        (FuncDeclNode::reverseParameterList): Added.
        (FuncExprNode::reverseParameterList): Added.
        (SourceElementsNode::ref): Iteration, not recursion.
        (SourceElementsNode::deref): Iteration, not recursion.
        (SourceElementsNode::execute): Use variable name of n to match other functions.
        (SourceElementsNode::processFuncDecl): Ditto.
        (SourceElementsNode::processVarDecls): Ditto.

        * kjs/nodes2string.cpp:
        (SourceStream::operator<<): Used a switch statement for a bit of added clarity.
        (ElementNode::streamTo): Iteration, not recursion.
        (PropertyValueNode::streamTo): Iteration, not recursion.
        (ArgumentListNode::streamTo): Iteration, not recursion.
        (StatListNode::streamTo): Iteration, not recursion, and fixed order.
        (VarDeclListNode::streamTo): Iteration, not recursion.
        (ClauseListNode::streamTo): Used for statement to match other functions.
        (CaseBlockNode::streamTo): Used for statement to match other functions.
        (ParameterNode::streamTo): Iteration, not recursion.
        (SourceElementsNode::streamTo): Iteration, not recursion, and fixed order that has been
	backwards since I changed how this works in nodes.cpp.

darin's avatar
darin committed
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
2003-01-11  Darin Adler  <darin@apple.com>

        Reviewed by John.

	- changes inspired by things I noticed reviewing diffs vs. KDE when preparing the tarball

        * kjs/function.cpp: (GlobalFuncImp::call): Use strtol when strtoll is
	not available. Do #ifndef NDEBUG, not #if !NDEBUG.
        * kjs/function.h: Do #ifndef NDEBUG, not #if !NDEBUG.
        * kjs/internal.cpp:
        (InterpreterImp::initGlobalObject): Do #ifndef NDEBUG, not #if !NDEBUG.
        (KJS::printInfo): Remove case for ListType and remove default case that just
	ends up suppressing the "missing case" warning and does no good.
        * kjs/interpreter.cpp: (Interpreter::evaluate): Do #ifndef NDEBUG, not #if !NDEBUG.
        * kjs/nodes.cpp:
        (Node::finalCheck): Fix accidentally-deleted code in an ifdef we never compile.
        (FunctionCallNode::evaluate): Remove bogus XXX comment. Maciej put this comment in,
        and together we determined it's not needed.
        (TypeOfNode::evaluate): Ditto.
        * kjs/object.cpp: Remove assert that refers to ListType.
        * kjs/value.h: Remove ListType.

darin's avatar
darin committed
100 101 102 103 104 105 106 107
2003-01-09  Darin Adler  <darin@apple.com>

        * JavaScriptCore.pbproj/project.pbxproj: Add the year 2003, remove CFBundleIconFile,
	bump marketing version to 0.8.1 and version to 52u to keep up with the branch,
	remove CFHumanReadableCopyright, remove NSPrincipalClass.

        * English.lproj/InfoPlist.strings: Updated to match above changes.

mjs's avatar
mjs committed
108 109 110 111 112 113 114 115
2003-01-05  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by no one cause I'm just changing copyright strings.

        * JavaScriptCore.pbproj/project.pbxproj: Added non-Apple copyrights to
	copyright strings.
        * English.lproj/InfoPlist.strings: Likewise.

darin's avatar
darin committed
116 117 118 119 120
2003-01-05  Darin Adler  <darin@apple.com>

        * JavaScriptCore.pbproj/project.pbxproj: Fix "Apple Compupter" typo.
	Remove unneeded CFBundleLongVersionString we don't use anywhere else.

darin's avatar
darin committed
121 122 123 124 125 126 127 128
2003-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

	- fixed 3138213 -- browser hangs trying to open Apple travel site

        * kjs/date_object.cpp: (timetUsingCF): Check for very-negative year numbers too.

kocienda's avatar
kocienda committed
129 130
=== Alexander-48 ===

kocienda's avatar
kocienda committed
131 132
=== Alexander-47 ===

darin's avatar
darin committed
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
2002-12-30  Darin Adler  <darin@apple.com>

        Reviewed by Don and Maciej.

	- follow-on to my fix for 3134693 that fixes one more case of recursion and simplifies further

        * kjs/grammar.y: Remove SourceElementNode and just use a StatementNode instead.
	Reverse SourceElements rule so the recursive rule comes first as in the original
	KJS code (avoids actual parser recursion).

        * kjs/grammar.cpp: Regenerated.
        * kjs/grammar.cpp.h: Regenerated.
        * kjs/grammar.h: Regenerated.

        * kjs/nodes.h: Make processFuncDecl a virtual function in StatementNode so that we can
	use a StatementNode instead of a SourceElementNode. Add a call to reverseList in BlockNode
	to correct the order of the linked list in SourceElementsNode, to replace the technique
	where we reversed it in the parser. Remove SourceElementNode class, and make the element in
	SourceElementsNode be a StatementNode instead.
        * kjs/nodes.cpp: Remove SourceElementNode code.
        (StatementNode::processFuncDecl): Added empty function.
        (BlockNode::reverseList): Added. Used to make the SourceElements list ordered correctly.
        * kjs/nodes2string.cpp: Remove SourceElementNode code.

kocienda's avatar
kocienda committed
157 158
=== Alexander-46 ===

159
2002-12-28  Darin Adler  <darin@apple.com>
kocienda's avatar
kocienda committed
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220

        Reviewed by Gramps and Ken.
	Checked in by Ken.

	- fixed 3134693 -- carsdirect.com crash on used car search, due to large JavaScript array

	The parser was using recursion to handle many types of lists.
	This meant that we crashed out of stack space when any of the lists were extra big.
	I applied the same sort of fix we had already applied a while back for argument lists for
	all the other types of lists, including the list of ElementNode that was the reason for
	the crash reported here.

        * kjs/grammar.y: Removed ElisionNode altogether and just use a count.
	Use specific node types for PropertyNameAndValueList and PropertyName.

        * kjs/grammar.cpp: Regenerated.
        * kjs/grammar.cpp.h: Regenerated.
        * kjs/grammar.h: Regenerated.

        * kjs/nodes.h: Elide "ElisionNode", changing objects to keep elision counts instead.
	Make the ObjectLiteralNode list field be PropertyValueNode, not just Node.
	Make PropertyValueNode fields have specific types. Add new reverse list functions, calls
	to those functions in the constructors, and friend declarations as needed so the class
	that holds the head of a list can reverse the list during parsing.
        * kjs/nodes.cpp:
        (ElementNode::ref): Use iteration instead of recursion. Also elide "elision".
        (ElementNode::deref): Ditto.
        (ElementNode::evaluate): Use iteration instead of recursion, taking advantage of
	the fact that the linked list is reversed. Also use the elision count rather than
	an elision list.
        (ArrayNode::reverseElementList): Reverse the list so we can iterate normally.
        (ArrayNode::ref): Elide "elision".
        (ArrayNode::deref): Ditto.
        (ArrayNode::evaluate): Use elision count instead of elision list.
        (ObjectLiteralNode::reverseList): Reverse the list so we can iterate normally.
        (PropertyValueNode::ref): Use iteration instead of recursion.
        (PropertyValueNode::deref): Use iteration instead of recursion.
        (PropertyValueNode::evaluate): Use iteration instead of recursion, taking advantage
	of the fact that the linked list is reversed.
        (ArgumentListNode::ref): Change code to match the other similar cases we had to revise.
        (ArgumentListNode::deref): Ditto.
        (ArgumentListNode::evaluateList): Ditto.
        (ArgumentsNode::reverseList): Ditto.
        (VarDeclListNode::ref): Use iteration instead of recursion.
        (VarDeclListNode::deref): Ditto.
        (VarDeclListNode::evaluate): Use iteration instead of recursion, taking advantage
	of the fact that the linked list is reversed.
        (VarDeclListNode::processVarDecls): Ditto.
        (VarStatementNode::reverseList): Reverse the list so we can iterate normally.
        (FunctionBodyNode::FunctionBodyNode): Use BlockNode as the base class, removing
	most of the FunctionBodyNode class.

        * kjs/nodes2string.cpp:
        (ElementNode::streamTo): Update for using a count for elision, and reverse linking.
        (ArrayNode::streamTo): Update for using a count for elision.
        (PropertyValueNode::streamTo): Update for reverse linking.
        (ArgumentListNode::streamTo): Update for reverse linking. This has been wrong for
	a while, since we added the reverse a long time ago.
        (VarDeclListNode::streamTo): Update for reverse linking.
        (ParameterNode::streamTo): Update for reverse linking.

kocienda's avatar
kocienda committed
221 222
=== Alexander-45 ===

darin's avatar
darin committed
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256
2002-12-22  Darin Adler  <darin@apple.com>

        Reviewed by Don and John.

	- fixed 3134449 -- Date.UTC returns NaN (invalid date)

	Did more testing of the date functions and made them behave like the other browsers.
	There were three problems:

            1) We did a validity check that other browsers don't do (hence the NaN).
            2) We treated passed-in dates as local time even in Date.UTC (hence a wrong result
               once I fixed the NaN).
            3) The results of ToUTCString (and ToGMTString) weren't formatted quite the same
	       as other browsers.

	Also found a couple of silly but unrelated coding mistakes.

        * kjs/date_object.cpp:
        (timetUsingCF): Added. Has the guts of mktimeUsingCF, but without the CFGregorianDateIsValid
        check. Other browsers accept invalid dates. Also takes a time zone parameter.
        (mktimeUsingCF): Calls timetUsingCF with the current time zone.
        (timegmUsingCF): Calls timetUsingCF with the UTC time zone.
        (formatDate): Remove the includeComma flag.
        (formatDateUTCVariant): Added. For use instead of formatDate with the includeComma flag.
	Puts the day before the month name.
        (DateProtoFuncImp::call): Use the new formatDateUTCVariant for ToGMTString and ToUTCString.
	Without this change the date didn't match other browsers.
        (DateObjectImp::DateObjectImp): Use UTCPropertyName. Somehow I declared this and didn't use
	it before.
        (DateObjectImp::construct): Pass -1 for is_dst literally instead of using invalidDate.
	Changing this to invalidDate was just a mistake (although no real difference in compiled
	code since invalidDate is just -1).
        (DateObjectFuncImp::call): Call timegm for the UTC case instead of mktime.

sheridan's avatar
alex-44  
sheridan committed
257 258
=== Alexander-44 ===

sheridan's avatar
sheridan committed
259 260
=== Alexander-43 ===

trey's avatar
trey committed
261 262 263 264 265 266 267 268 269
2002-12-20  Trey Matteson  <trey@apple.com>

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * JavaScriptCore.pbproj/project.pbxproj:

sheridan's avatar
sheridan committed
270 271
=== Alexander-42 ===

sheridan's avatar
sheridan committed
272 273
=== Alexander-41 ===

sheridan's avatar
sheridan committed
274 275
=== Alexander-40 ===

mjs's avatar
Tools:  
mjs committed
276 277 278 279 280 281 282 283 284
2002-12-18  Maciej Stachowiak  <mjs@apple.com>

	Reviewed by John.

	- fixed 3131171 - Change Alex versions to satisfy both marketing and B&I requirements
	
        * English.lproj/InfoPlist.strings:
        * JavaScriptCore.pbproj/project.pbxproj:

darin's avatar
darin committed
285 286 287 288 289 290
2002-12-17  Darin Adler  <darin@apple.com>

        Reviewed by Trey.

        * JavaScriptCore.pbproj/project.pbxproj: Removed signature.

sheridan's avatar
sheridan committed
291 292
=== Alexander-39 ===

sheridan's avatar
Alex-38  
sheridan committed
293 294
=== Alexander-38 ===

darin's avatar
darin committed
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
2002-12-16  Darin Adler  <darin@apple.com>

        Reviewed by Don and Maciej.

	- fixed 3129115 -- need Apple copyright added to open source documents

	* tons of files: Added our copyright to files we modified, and updated all to standard format.

	- other changes

        * JavaScriptCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.
	Also removed completion.cpp.
        * kjs/completion.cpp: Removed.
        * kjs/completion.h: Made the Completion constructor inline.

        * kjs/grammar.y: Removed an obsolete "pretend ifdef". No need to put these in APPLE_CHANGES now.

sheridan's avatar
sheridan committed
312 313
=== Alexander-37 ===

mjs's avatar
mjs committed
314 315 316 317 318 319 320 321
=== JavaScriptCore-37u2 ===

2002-12-15  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        * JavaScriptCore.pbproj/project.pbxproj: Bump version to 37u2.

darin's avatar
darin committed
322 323 324 325 326 327 328
2002-12-14  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * JavaScriptCore.pbproj/project.pbxproj: Make dtoa.h visible as an SPI so I can
	use it inside QString.

mjs's avatar
mjs committed
329 330 331 332 333 334 335 336 337 338
2002-12-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

	- further corrections to number printing.

        * kjs/ustring.cpp:
        (UString::from): Make number printing match the ECMA standard
	algorithm.

mjs's avatar
mjs committed
339 340 341 342 343 344 345 346 347 348 349 350
2002-12-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave.

	- fix toString() conversion for numbers less than 1. Negative
	exponents are still wrong though (things like 1E-34).
 
        * kjs/ustring.cpp:
	(UString::from): Don't print empty string for numbers less than 1,
	and remember to add extra 0s after the decimal for negative
	decimal positions.
	
351 352
=== Alexander-37u1 ===

sheridan's avatar
sheridan committed
353 354
=== Alexander-36 ===

mjs's avatar
mjs committed
355 356 357 358 359 360 361 362 363 364 365 366 367
2002-12-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- fixed 3056449 - can't select state at tucows.com

        * kjs/array_instance.h:
        * kjs/array_object.cpp:
	(ArrayInstanceImp::propList): Add numeric proprties that are in
	special storage.
        * kjs/array_object.h:
        * kjs/object.h: Make propList a virtual method.

mjs's avatar
mjs committed
368 369
2002-12-11  Maciej Stachowiak  <mjs@apple.com>

mjs's avatar
mjs committed
370
        Reviewed by Don.
mjs's avatar
mjs committed
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387

	- Add kjsprint global function in Development build for ease of	debugging.
	- Print uncaught JavaScript exceptions to the console in Development.
	- Improve wording of exception error messages.
	
        * kjs/function.cpp:
        (GlobalFuncImp::call):
        * kjs/function.h:
        * kjs/internal.cpp:
        (InterpreterImp::initGlobalObject):
        * kjs/interpreter.cpp:
        (Interpreter::evaluate):
        * kjs/nodes.cpp:
        (NewExprNode::evaluate):
        (FunctionCallNode::evaluate):
        (RelationalNode::evaluate):

sullivan's avatar
Tools:  
sullivan committed
388 389 390 391 392 393 394 395 396 397
2002-12-10  John Sullivan  <sullivan@apple.com>

	Fixed more "Alexander"s that were lurking in places I forgot 
	to look before.

        Reviewed by Darin

        * Makefile.am:
	"rm -rf $(SYMROOTS)/Safari.app/Frameworks/JavaScriptCore.framework"

darin's avatar
Tools:  
darin committed
398 399 400 401 402 403 404
2002-12-09  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * JavaScriptCore.pbproj/project.pbxproj: Bump versions to 0.8 and 35u.
	* English.lproj/InfoPlist.strings: In here too.

mjs's avatar
mjs committed
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
2002-12-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

	- fixed 3059637 - all articles missing at excite.com sports page
	- fixed 3065903 - most of content missing at excite.com news page

	These bugs both came up because a JavaScript function has a var
	declaration that collides with a function parameter name.
	
        * kjs/nodes.cpp:
        (VarDeclNode::processVarDecls): Don't set the property to
	undefined if a property with that name is already set on the
	global object. Otherwise we may clobber function parameters with
	undefined even before hitting a possible var initializer.

mjs's avatar
mjs committed
421 422 423 424 425 426 427 428 429 430
2002-12-06  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by: Darin Adler

	- made framework embedding work correctly with buildit

        * JavaScriptCore.pbproj/project.pbxproj: Give framework a relative
	install path, don't install it the normal way, and copy it
	manually to /AppleInternal/Library/Frameworks if installing.

sheridan's avatar
sheridan committed
431 432
=== Alexander-35 ===

mjs's avatar
mjs committed
433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451
2002-12-04  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by: Richard Williamson

	Added explicit lock/unlock methods so Sherlock can grab the
	interpreter lock as needed.
	
	- partially addressed 3084320 - JavaScriptCore crash
	
        * kjs/internal.cpp:
        (InterpreterImp::InterpreterImp):
        (InterpreterImp::lock):
        (InterpreterImp::unlock):
        * kjs/internal.h:
        * kjs/interpreter.cpp:
        (Interpreter::lock):
        (Interpreter::unlock):
        * kjs/interpreter.h:

mjs's avatar
mjs committed
452 453
2002-12-04  Maciej Stachowiak  <mjs@apple.com>

mjs's avatar
mjs committed
454
        Reviewed by: Darin Adler
mjs's avatar
mjs committed
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510

	Set things up so JavaScriptCore builds in PCRE and uses it for
	regular expressions. This fixes many form validation bugs:

	- fixed 3103197 - javascript at fidelity.com rejects valid input
	- fixed 2942552 - form validation at weather.com fails
	- fixed 3079752 - js always reports textarea is empty
	- fixed 3079719 - covad.com "check availalbility" fails
	
        * Makefile.am: Add pcre subdir.
        * kjs/config.h: define HAVE_PCREPOSIX to true.
	* kjs/regexp.h: Don't include pcreposix.h since nothing from there
	is used.
	* pcre/.cvsignore: Added.
        * pcre/ChangeLog: Removed.
        * pcre/INSTALL: Removed.
        * pcre/Makefile.am: Added.
        * pcre/Makefile.in: Removed.
        * pcre/NEWS: Removed.
        * pcre/NON-UNIX-USE: Removed.
        * pcre/README: Removed.
        * pcre/chartables.c: Added.
        * pcre/config.guess: Removed.
        * pcre/config.in: Removed.
        * pcre/config.sub: Removed.
        * pcre/configure: Removed.
        * pcre/configure.in: Removed.
        * pcre/dll.mk: Removed.
        * pcre/doc/Tech.Notes: Removed.
        * pcre/doc/pcre.3: Removed.
        * pcre/doc/pcre.html: Removed.
        * pcre/doc/pcre.txt: Removed.
        * pcre/doc/pcregrep.1: Removed.
        * pcre/doc/pcregrep.html: Removed.
        * pcre/doc/pcregrep.txt: Removed.
        * pcre/doc/pcreposix.3: Removed.
        * pcre/doc/pcreposix.html: Removed.
        * pcre/doc/pcreposix.txt: Removed.
        * pcre/doc/pcretest.1: Removed.
        * pcre/doc/pcretest.html: Removed.
        * pcre/doc/pcretest.txt: Removed.
        * pcre/doc/perltest.txt: Removed.
        * pcre/install-sh: Removed.
        * pcre/ltmain.sh: Removed.
        * pcre/pcre-config.h: Added.
        * pcre/pcre-config.in: Removed.
        * pcre/internal.h: Include pcre-config.h instead of config.h
        * pcre/pcre.c:
        (ord2utf8): Fix warnings.
        (pcre_compile): Fix warnings.
        * pcre/pcre.def: Removed.
        * pcre/pcre.h: Added.
        * pcre/pcre.in: Removed.
        * JavaScriptCore.pbproj/project.pbxproj: Added pcre files to build.
        * JavaScriptCorePrefix.h: Guard c++ headers with #ifdef __cplusplus.

mjs's avatar
mjs committed
511 512 513 514 515 516 517
2002-12-04  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by: Richard Williamson

        * pcre/doc/*: Added.
        * pcre/testdata/*: Added.

mjs's avatar
mjs committed
518 519 520 521 522 523 524 525 526
2002-12-03  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by: Darin Adler

	- imported PCRE 3.9 into the tree; this isn't actually compiled or
	used yet.

        * pcre/*: Added.

527
== Rolled over to ChangeLog-2002-12-03 ==