12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484 |
- === Safari-111 ===
- 2003-10-22 Maciej Stachowiak <mjs@apple.com>
- Fix broken build.
- * kjs/simple_number.h:
- 2003-10-22 Maciej Stachowiak <mjs@apple.com>
- Merged 64-bit compilation fixes, and fixes for handling negative 0
- from upstream kjs.
-
- * kjs/internal.cpp:
- * kjs/simple_number.h:
- (KJS::SimpleNumber): fixed constants; added negZero constant.
- (KJS::SimpleNumber::is): adjusted to use long and not int.
- (KJS::SimpleNumber::value): ditto.
- (KJS::SimpleNumber::fits): ditto; also don't allow -0 to fit, so
- we don't lose the distinction between -0 and +0.
- (KJS::SimpleNumber::make): adjusted to use long.
- 2003-10-18 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3367015 -- interdependent variable declarations in for loop don't work (they go backwards)
- * kjs/nodes.h: (KJS::ForNode::ForNode): Add a new overload of the constructor for when the
- first parameter is a variable declaration list. Call reverseList as we do in other constructors
- that take lists that are built backwards.
- * kjs/nodes.cpp: (ForNode::reverseList): Added. New helper function.
- === Safari-110 ===
- === Safari-109 ===
- 2003-10-06 Darin Adler <darin@apple.com>
- * kjs/create_hash_table: Remove stray semicolon.
- * kjs/array_object.lut.h:
- * kjs/date_object.lut.h:
- * kjs/lexer.lut.h:
- * kjs/math_object.lut.h:
- * kjs/number_object.lut.h:
- * kjs/string_object.lut.h:
- Regenerated.
- === Safari-108 ===
- 2003-10-02 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3441656 -- constructor bad for objs created w/ function as prototype (www.moock.org/asdg/codedepot)
- * kjs/nodes.cpp: (FuncDeclNode::processFuncDecl): Set up the constructor as
- as specified in the JavaScript spec. We were already doing this right in the
- other place we make functions.
- 2003-09-30 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- Rolled in Harri Porten's change to accept non-breaking space in JavaScript.
- * kjs/lexer.cpp: (Lexer::isWhiteSpace): Accept 00A0 as "whitespace".
- 2003-09-25 Maciej Stachowiak <mjs@apple.com>
- Roll out build system change since it did not actually work. :-(
-
- * JavaScriptCore.pbproj/project.pbxproj:
- * Makefile.am:
- 2003-09-25 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- * JavaScriptCore.pbproj/project.pbxproj: Don't hack install name. Instead
- of embedding into Safari, embed into WebKit as sub-umbrella.
- * Makefile.am: Don't forget to rebuild if the user removes
- JavaScript.framework from symroots manually.
- === Safari-107 ===
- 2003-09-24 Darin Adler <darin@apple.com>
- Reviewed by Ken.
- - fixed 3421107 -- some dates that other browsers can parse can't be parsed by KJS's Date.parse()
- * kjs/date_object.cpp: (KJS::KRFCDate_parseDate): Added code to be more strict about month names,
- to allow a time zone after date even if the date omits the time, and to understand AM and PM.
- 2003-09-22 Darin Adler <darin@apple.com>
- * JavaScriptCore.pbproj/project.pbxproj: Rename Mixed build style to OptimizedWithSymbols.
- 2003-09-22 Darin Adler <darin@apple.com>
- Reviewed by Ken.
- * kjs/config.h: Added HAVE_SYS_PARAM_H, since KJS does look for this header, and we do
- indeed have it. Just something I noticed in passing while cleaning up configure.in.
- 2003-09-20 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3419380 -- JavaScript Date.getTimezoneOffset is off by one hour (during daylight savings)
- * kjs/date_object.cpp: (DateProtoFuncImp::call): The daylight savings correction
- in here was incorrect. Perhaps I should have corrected it for the non-BSD case too,
- but I'm not sure the issue is the same.
- 2003-09-17 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- * kjs/date_object.cpp: Removed our CF-based implementations of gmtime, localtime,
- mktime, timegm, and time, since they no longer have the slow "hit the filesystem
- every time" behavior.
- === Safari-100 ===
- === Safari-99 ===
- === Safari-98 ===
- === Safari-97 ===
- === Safari-96 ===
- 2003-08-27 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John
- - fixed rdar://problem/3397316 - sherlock crash: KJS::Collector::allocate(unsigned long)
-
- * kjs/internal.cpp:
- (InterpreterImp::InterpreterImp): Hold the lock a bit longer, so
- the call to initGlobalObject is covered.
- === Safari-95 ===
- 2003-08-24 Darin Adler <darin@apple.com>
- Reviewed by John.
- - fixed 3098350 -- opt. params to date methods are ignored (can't set end date in Exchange/Outlook web cal.)
- * kjs/date_object.cpp: (DateProtoFuncImp::call): Added code to handle the optional parameters.
- Strangely, the table of functions already had the right number of parameters listed, but the
- code to look at the parameter values was missing.
- === Safari-94 ===
- 2003-08-17 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - fixed 3247528 -- encodeURI missing from JavaScriptCore (needed by Crystal Reports)
- - fixed 3381297 -- escape method does not escape the null character
- - fixed 3381299 -- escape method produces incorrect escape sequences ala WinIE, rather than correct ala Gecko
- - fixed 3381303 -- unescape method treats escape sequences as Latin-1 ala WinIE rather than as UTF-8 ala Gecko
- - fixed 3381304 -- unescape method garbles strings with bad escape sequences in them
- * kjs/function.h: Added constants for decodeURI, decodeURIComponent, encodeURI, and
- encodeURIComponent.
- * kjs/function.cpp:
- (encode): Added. New helper function for escape, encodeURI, and encodeURIComponent.
- (decode): Added. New helper function for unescape, decodeURI, and decodeURIComponent.
- (GlobalFuncImp::call): Added decodeURI, decodeURIComponent, encodeURI, and encodeURIComponent
- implementations. Changed escape and unescape to use new helper functions, which fixes
- the four problems above.
- * kjs/internal.cpp: (InterpreterImp::initGlobalObject): Add decodeURI, decodeURIComponent,
- encodeURI, and encodeURIComponent to the global object.
- * kjs/ustring.h: Added a length to the CString class so it can hold strings with null
- characters in them, not just null-terminated strings. This allows a null character from
- a UString to survive the process of UTF-16 to UTF-8 decoding. Added overloads to
- UString::append, UString::UTF8String, UTF8SequenceLength, decodeUTF8Sequence,
- convertUTF16OffsetsToUTF8Offsets, and convertUTF8OffsetsToUTF16Offsets.
-
- * kjs/ustring.cpp:
- (CString::CString): Set up the length properly in all the constructors. Also add a new
- constructor that takes a length.
- (CString::append): Use and set the length properly.
- (CString::operator=): Use and set the length properly.
- (operator==): Use and the length and memcmp instead of strcmp.
- (UString::append): Added new overloads for const char * and for a single string to make
- it more efficient to build up a UString from pieces. The old way, a UString was created
- and destroyed each time you appended.
- (UTF8SequenceLength): New. Helper for decoding UTF-8.
- (decodeUTF8Sequence): New. Helper for decoding UTF-8.
- (UString::UTF8String): New. Decodes from UTF-16 to UTF-8. Same as the function that
- was in regexp.cpp, except has proper handling for UTF-16 surrogates.
- (compareStringOffsets): Moved from regexp.cpp.
- (createSortedOffsetsArray): Moved from regexp.cpp.
- (convertUTF16OffsetsToUTF8Offsets): New. Converts UTF-16 offsets to UTF-8 offsets, given
- a UTF-8 string. Same as the function that was in regexp.cpp, except has proper handling
- for UTF-16 surrogates.
- (convertUTF8OffsetsToUTF16Offsets): New. Converts UTF-8 offsets to UTF-16 offsets, given
- a UTF-8 string. Same as the function that was in regexp.cpp, except has proper handling
- for UTF-16 surrogates.
- - fixed 3381296 -- regular expression matches with UTF-16 surrogates will treat sequences as two characters
- * kjs/regexp.cpp:
- (RegExp::RegExp): Use the new UString::UTF8String function instead a function in this file.
- (RegExp::match): Use the new convertUTF16OffsetsToUTF8Offsets (and the corresponding
- reverse) instead of convertCharacterOffsetsToUTF8ByteOffsets in this file.
- === Safari-93 ===
- 2003-08-14 Vicki Murley <vicki@apple.com>
- Reviewed by John.
- * JavaScriptCore.pbproj/project.pbxproj: deleted JavaScriptCore.order from the project.
- 2003-08-14 Vicki Murley <vicki@apple.com>
- Reviewed by John.
- * JavaScriptCore.order: Removed. We now link to the order file at /AppleInternal/OrderFiles.
- * JavaScriptCore.pbproj/project.pbxproj: change sectorder flag to point to /AppleInternal/OrderFiles/JavaScriptCore.order
- === JavaScriptCore-92.1 ===
- 2003-08-07 Darin Adler <darin@apple.com>
- Reviewed by John Sullivan.
- - fixed 3365527 -- subscripting JavaScript strings does not work (leads to hang at www.newmagna.com.au)
- The JavaScript specification says nothing about this, but other browsers seem to give
- read-only access to the characters in a string as if the string was an array of characters.
- * kjs/array_object.cpp:
- (ArrayInstanceImp::get): Update to use a public toArrayIndex function instead of our own getArrayIndex
- function, so we can share with string.
- (ArrayInstanceImp::put): Ditto.
- (ArrayInstanceImp::hasProperty): Ditto.
- (ArrayInstanceImp::setLength): Ditto.
- * kjs/ustring.h: Add toArrayIndex.
- * kjs/ustring.cpp: (UString::toArrayIndex): Added. Implements the rule from array.
- * kjs/identifier.h: Add a forwarding function so we can use toArrayIndex.
- * kjs/string_object.cpp:
- (StringInstanceImp::get): Return a single character string if the property name is an array index.
- (StringInstanceImp::hasProperty): Return true for property names that are suitable array indices.
- * JavaScriptCore.pbproj/project.pbxproj: Let Xcode be Xcode.
- === Safari-92 ===
- 2003-08-07 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- - fixed 3366975 - repro hang in KJS::Value::Value entering text at eil.com
-
- * kjs/string_object.cpp:
- (StringProtoFuncImp::call): When doing a match against a regexp
- with the global flag set, make sure to return null rather than an
- empty array when there is no match. This is what other browsers do.
- 2003-08-05 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John.
- * kjs/list.cpp:
- (List::copyTail): Test for loop termination with < instead of !=,
- since i starts at 1 but size could be 0. Do the same for the other
- loop for consistency's sake.
-
- 2003-08-01 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John.
- - fixed 3222621 - Cryptic "anonymous function hack" messages in console (10.2.4)
-
- * kjs/lexer.cpp:
- (Lexer::lex): Remove useless debug spew.
- === Safari-91 ===
- 2003-07-30 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed problem where some JavaScriptCore symbols had no namespace or prefix
- * kjs/grammar.y: Added a define for yylloc to make it use the kjs prefix.
- This is the same thing done for the rest of the symbols automatically by yacc,
- but for some reason it's not done for yyloc. Also make automatic() function static.
- * kjs/grammar.cpp: Regenerated.
- * kjs/lexer.cpp: Use kjsyylloc instead of yyloc.
- * pcre/pcre.h: Add defines to prepend kjs prefixes for all the PCRE functions.
- 2003-07-30 Darin Adler <darin@apple.com>
- * Makefile.am: Include the subdirectory with the PCRE code in it.
- 2003-07-30 John Sullivan <sullivan@apple.com>
- - JavaScriptCore part of fix for 3284525 -- AutoFill fills in
- only e-mail address field of New Account form on Apple Store Japan
- Reviewed by Darin
- * JavaScriptCore.pbproj/project.pbxproj:
- Mark pcre.h as a Private header
- 2003-07-28 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Richard.
- - fixed 3240814 - LEAK: 120 byte leak in JavaScript parser in Sherlock Movies channel
-
- * kjs/internal.cpp:
- (Parser::parse): ref() and deref() the program node, to make sure to clean up properly,
- before deleting it.
- (InterpreterImp::checkSyntax): Likewise.
- === Safari-90 ===
- 2003-07-22 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John.
- Remove -seg_addr_table_filename to fix build.
- * JavaScriptCore.pbproj/project.pbxproj:
- 2003-07-17 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John.
- - fixed 3330344 - Please change allowable client to "JavaScriptGlue" from "JSGlue"
- * JavaScriptCore.pbproj/project.pbxproj: Changed allowable client
- to "JavaScriptGlue"
- 2003-07-13 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - do some improvements Maciej suggested while reviewing the array index change
- * kjs/array_object.cpp:
- (getArrayIndex): Return a flag to say whether the index was value separately, to avoid
- in-band signalling.
- (ArrayInstanceImp::get): Update for new getArrayIndex parameters.
- (ArrayInstanceImp::put): Ditto.
- (ArrayInstanceImp::hasProperty): Ditto.
- (ArrayInstanceImp::setLength): Ditto.
-
- * kjs/ustring.cpp: (UString::toStrictUInt32): Check for overflow in a way that avoids doing
- a divide every time through the loop. But note that it adds an extra branch to the loop.
- I wonder which is worse.
- 2003-07-12 Darin Adler <darin@apple.com>
- Fixed broken build.
- * kjs/identifier.h: Add toULong back. It's still used in WebCore (and maybe in JavaScriptGlue,
- for all I know).
- 2003-07-12 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3272777 -- array object indices treated as integers by Safari, but as strings in other web browsers
- JavaScriptCore did not implement the proper rule for what an array index is.
- * kjs/array_object.cpp:
- (getArrayIndex): Added. Implements the rule from the specification, which also provides a handy
- "not an array index" value of 2^32-1.
- (ArrayInstanceImp::get): Use getArrayIndex.
- (ArrayInstanceImp::put): Ditto.
- (ArrayInstanceImp::hasProperty): Ditto.
- (ArrayInstanceImp::setLength): Ditto.
- * kjs/identifier.h: Removed now-unused toULong, and added toStrictUInt32, in both cases forwarding
- functions that forward to UString.
- * kjs/ustring.h: Added toStringUInt32.
- * kjs/ustring.cpp: (UString::toStrictUInt32): Added. Converts a string to a 32-bit unsigned integer,
- and rejects any string that does not exactly match the way the integer would be formatted on output.
- This is the rule documented in the ECMA language standard.
- === Safari-89 ===
- 2003-07-10 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- - fixed 3302021 - v74 and v85 hang with http://e-www.motorola.com/
- The crux of this was saving and restoring the prototype objects
- for all the standard types when saving and restoring for the page
- cache.
-
- * kjs/internal.cpp:
- (InterpreterImp::saveBuiltins):
- (InterpreterImp::restoreBuiltins):
- * kjs/internal.h:
- * kjs/interpreter.cpp:
- (Interpreter::saveBuiltins):
- (Interpreter::restoreBuiltins):
- (SavedBuiltins::SavedBuiltins):
- (SavedBuiltins::~SavedBuiltins):
- * kjs/interpreter.h:
- * kjs/property_map.cpp:
- 2003-07-07 Maciej Stachowiak <mjs@apple.com>
- Reviewed by John.
- - fixed 3295916 - b/c JavaScriptCore and WebCore are installing in wrong location, private headers are public
- * WebCore.pbproj/project.pbxproj: Install in WebKit.framework/Versions/A/Frameworks.
- === Safari-88 ===
- 2003-07-02 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Ken.
- - fixed 3096961 - JavaScriptCore should link only to what it uses, shouldn't drag in Cocoa.framework
- * JavaScriptCore.pbproj/project.pbxproj: Don't link Cocoa.framework;
- just pull in CoreFoundation and CoreServices.
- * kjs/date_object.cpp: Include CoreServices.h instead of Carbon.h
- (the stuff we want is in CarbonCore).
- 2003-06-20 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - improved the property map sorting technique so that the indices
- are separate for each property map, and also preserve the ordering
- when property maps are saved and restored
- * kjs/property_map.cpp:
- (PropertyMap::put): Don't bother setting the index for _singleEntry, since there's
- no need to sort a single entry. Use the per-table lastIndexUsed instead of a global.
- (PropertyMap::expand): Don't use the index (uninitialized now) out of a _singleEntry
- when putting it in a newly-created map; just use 0. Compute a value for the new map's
- lastIndexUsed as we walk through the elements we are adding to it (using the same old
- indices from the old map).
- === Safari-85.1 ===
- === Safari-85 ===
- 2003-06-13 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3178438 -- return elements in order of addition in for..in loop (other browsers seem to)
- - fixed 3292067 -- REGRESSION (64-65): albertsons.com "Shop A to Z" menus are not sorted alphabetically
- * kjs/property_map.h: Add index field to hash table entry and index parameter to insert function.
- * kjs/property_map.cpp:
- (PropertyMap::put): Set an index for new map entries to an ever-increasing number based on a global.
- (PropertyMap::insert): Take an index parameter.
- (PropertyMap::expand): Preserve the indices as we rehash the table.
- (comparePropertyMapEntryIndices): Added. Compares two property map entries by index.
- (PropertyMap::addEnumerablesToReferenceList): Sort the proprty map entries by index before adding
- them to the reference list.
- === Safari-84 ===
- 2003-06-10 Vicki Murley <vicki@apple.com>
- Reviewed by john.
- * JavaScriptCore.order: new order file for 1.0
- === Safari-83 ===
- 2003-06-04 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3224031 -- can't search at rakuten.co.jp b/c of extra characters inserted by regexp replace (8-bit char)
- Use PCRE UTF-8 regular expressions instead of just chopping off high bytes.
- * kjs/regexp.h: Redo field names, remove some unused stuff.
- * kjs/regexp.cpp:
- (convertToUTF8): Added.
- (compareStringOffsets): Added.
- (createSortedOffsetsArray): Added.
- (convertCharacterOffsetsToUTF8ByteOffsets): Added.
- (convertUTF8ByteOffsetsToCharacterOffsets): Added.
- (RegExp::RegExp): Set the PCRE_UTF8 flag, and convert the UString to UTF-8 instead of
- using ascii() on it.
- (RegExp::~RegExp): Remove unneeded if statement (pcre_free is 0-tolerant as free is).
- (RegExp::match): Convert the UString to UTF-8 and convert the character offsets to and
- from UTF-8 byte offsets. Also do fixes for the "no offset vector" case so we get the
- correct position and matched string.
- * JavaScriptCore.pbproj/project.pbxproj: Add a PCRE header that was missing before.
- === Safari-82 ===
- === Safari-81 ===
- 2003-05-21 Vicki Murley <vicki@apple.com>
- Reviewed by john
- - fixed 3234553: Safari and its frameworks should link using order files
- * JavaScriptCore.order: Added.
- * JavaScriptCore.pbproj/project.pbxproj: set SECTORDER_FLAGS = -sectorder __TEXT __text JavaScriptCore.order
- === Safari-80 ===
- 2003-05-19 Maciej Stachowiak <mjs@apple.com>
- - fixed 3261096 - Make WebKit an umbrella framework
-
- * JavaScriptCore.pbproj/project.pbxproj: In a B&I build, compile as a
- sub-umbrella of WebKit.
- 2003-05-16 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Ken.
- - fixed 3254063 - REGRESSION: hang in KJS PropertyMap with many items in iDisk pictures folder
- * kjs/property_map.cpp:
- (PropertyMap::expand): Fixed to maintain key count properly - otherwise the hashtable
- could get completely full, resulting in disaster.
- (PropertyMap::checkConsistency): Fixed compilation. Fixed to know about deleted
- sentinel. Fixed to search with double-hashing instead of linear probing.
-
- === Safari-79 ===
- 2003-05-15 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Chris.
- - fixed 3259673 - REGRESSION: marvel.com thinks I don't have the flash plugin any more
- * kjs/nodes.cpp:
- (ContinueNode::execute): Return a Continue completion, not a Break
- completion, in the normal non-exception case.
- 2003-05-12 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- - fixed 3254484 - Add a way to print JavaScript exceptions to the console via the debug menu
- - improved JavaScript error message format
-
- * kjs/error_object.cpp:
- (ErrorProtoFuncImp::call): Include line number in toString output.
- * kjs/internal.cpp:
- (Parser::parse): Remove redundant fprintf.
- * kjs/interpreter.cpp:
- (Interpreter::evaluate): Log if the flag is on. Include filename in log output.
- (Interpreter::shouldPrintExceptions): Check the global flag.
- (Interpreter::setShouldPrintExceptions): Set the global flag.
- * kjs/interpreter.h:
- * kjs/nodes.cpp:
- (Node::throwError): Add variants that include value and expression or label in format.
- (NewExprNode::evaluate): Improve error message.
- (FunctionCallNode::evaluate): Improve error message.
- (RelationalNode::evaluate): Improve error message.
- (ContinueNode::execute): Improve error message.
- (BreakNode::execute): Improve error message.
- (LabelNode::execute): Improve error message.
- * kjs/nodes.h:
- === Safari-78 ===
- 2003-05-07 Vicki Murley <vicki@apple.com>
- Reviewed by darin.
-
- - modify the Mixed build style to build optimized with symbols
-
- * JavaScriptCore.pbproj/project.pbxproj: removed OPTIMIZATION_CFLAGS
- 2003-05-05 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Don.
- - fixed 3239961 - www.phiffer.com doesn't work; uses "var top; top = n;"
-
- * kjs/nodes.cpp:
- (VarDeclNode::evaluate): Check if the property exists with
- getDirect() instead of hasProperty().
- === Safari-77 ===
- 2003-04-29 Darin Adler <darin@apple.com>
- Reviewed by John.
- - fixed 2959353 -- eliminate globally initialized objects from JavaScriptCore
- * JavaScriptCore.pbproj/project.pbxproj: Added fpconst.cpp.
- * kjs/fpconst.cpp: Added. Defines KJS::NaN and KJS::Inf in a way that does not require a
- framework init routine.
- * kjs/identifier.h: Use a new KJS_IDENTIFIER_EACH_GLOBAL macro so we can do things to
- the entire set of identifiers easily. Also added an init function that sets up these globals
- in a way that does not require a framework init routine.
- * kjs/identifier.cpp: (Identifier::init): Initialize the property ane globals in a way that
- does not require a framework init routine.
- * kjs/internal.cpp: (InterpreterImp::initGlobalObject): Call Identifier::init.
-
- * kjs/ustring.h: Remove UChar::null and UString::null, and add UString::null(). We can't have
- a global object of a class that has a constructor if we want to avoid framework init routines,
- and luckily very little code relies on these.
- * kjs/ustring.cpp:
- (UCharReference::ref): Use our own global specific to this function rather than returning
- UChar::null when past the end of the string. This is dangerous because if the caller modifies
- it, that affects what all subsequent callers will see.
- (UString::Rep::create): Added assertions.
- (UString::UString): Got rid of code here that used to set up UString::null.
- (UString::null): Added. Returns a global null string, and can be used in some of the places
- where we used to use the UString::null global.
- (UString::operator[]): Fixed case where this used to return UChar::null to return '\0' instead.
- * kjs/regexp.cpp: (RegExp::match): Change uses of UString::null to UString::null().
- 2003-04-25 Darin Adler <darin@apple.com>
- - fixed 3241344 -- REGRESSION: top of page missing on wired.com and cnn.com
- Caused by the ResolveNode speedup. Roll it out until I can figure out why.
- * kjs/nodes.cpp: (ResolveNode::evaluate): Go back to using evaluateReference.
- 2003-04-25 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - a couple improvements that give a 6.6% speedup on iBench JavaScript
- * kjs/nodes.cpp: (ResolveNode::evaluate): Don't use evaluateReference.
-
- * kjs/object.cpp: (ObjectImp::get): Do the prototype work with the ValueImp, not a wrapper.
- Contributes a tiny bit to the speedup, but cleaner anyway.
- (ObjectImp::hasProperty): Same thing here.
- 2003-04-25 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - move from linear probing to double hashing, gives an 0.7% speedup in iBench JavaScript
- * kjs/property_map.h: Remove the hash function.
- * kjs/property_map.cpp: Added statistics for rehashes and removes.
- Moved from linear probing to double hashing, using the hash modulo
- (table size minus one) plus one for the probing distance.
- * kjs/ustring.h: Use unsigned instead of int for hash function result.
- === Safari-75 ===
- 2003-04-18 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Ken.
- Improved List pool for 3% speed improvement on cvs-js-ibench
- * kjs/list.cpp: Replaced the roving cursor with a free list and
- raised the high water mark to 384.
- 2003-04-12 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Don.
- - JavaScriptCore part of fix for 3158769 - JavaScript triggers not as async as they used to be
- Added a way to get the current interpreter lock count, so Sherlock
- can unlock the interpreter inside JS method implementations that
- spend a long time waiting for I/O, allowing more efficient
- multi-threaded operation.
- * kjs/internal.cpp:
- (lockInterpreter):
- (unlockInterpreter):
- (InterpreterImp::lock):
- (InterpreterImp::lockCount):
- * kjs/internal.h:
- * kjs/interpreter.cpp:
- (Interpreter::lockCount):
- * kjs/interpreter.h:
- === Safari-73 ===
- === Safari-72 ===
- === Safari-71 ===
- 2003-03-31 Darin Adler <darin@apple.com>
- * English.lproj/InfoPlist.strings: Changed "1.0 Beta" to "1.0 Beta 2".
- * JavaScriptCore.pbproj/project.pbxproj: Changed "1.0 Beta" to "1.0 Beta 2".
- === Safari-69 ===
- 2003-03-24 Trey Matteson <trey@apple.com>
- Pass -seg_addr_table_filename <FILENAME> to ld. This makes our frameworks in
- SYMROOT actually work for symbol resolution because they will have the correct
- prebinding address. It also fixes obscure B&I problems with prebinding
- reported by Matt Reda.
- Note the reason all this is tricky for our projects is that we have a different
- install location for Jaguar and Panther. The purpose of this arg is to declare
- at link time our eventual location, which allows the prebinding address to be
- found in /AppleInternal/Developer/seg_addr_table. We use a funky back-tick
- expression within OTHER_LDFLAGS to get a conditional value depending on the
- build train we are in.
- This can all go away once we only build on Panther and don't embed the
- frameworks inside the Safari.app wrapper.
- In addition I fixed the OTHER_LDFLAGS settings in our build styles to be
- additive instead of overriding, so we have the args we used for B&I in force
- when building outside of B&I.
- Reviewed by Maciej.
- * JavaScriptCore.pbproj/project.pbxproj:
- === Safari-68 ===
- 2003-03-16 Trey Matteson <trey@apple.com>
- 3198135 - need to fix our projects so SYMROOT is not stripped
- Tweaked stripping options: B&I build does not COPY_PHASE_STRIP.
- Deployment build still does.
- We strip manually as part of the install that we do ourselves.
- Reviewed by Maciej.
- * JavaScriptCore.pbproj/project.pbxproj:
- === Safari-67 ===
- === Safari-66 ===
- 2003-03-10 Darin Adler <darin@apple.com>
- Reviewed by Ken.
- - fixed 3193099 -- date parsing can't handle the time zone format that date formatting produces
- * kjs/date_object.cpp: (KJS::KRFCDate_parseDate): Allow a "GMT" prefix before the time zone offset.
- === Safari-65 ===
- 2003-03-04 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - got rid of some framework initialization (working on bug 2959353)
- * kjs/identifier.h: Turn Identifier:null into Identifier:null().
- * kjs/identifier.cpp: Removed Identifier:null and added Identifier:null().
- * kjs/internal.cpp: Made NaN_Bytes and Inf_Bytes const.
- * kjs/completion.h: Use Identifier:null() instead of Identifier:null.
- * kjs/function.h: Ditto.
- * kjs/function_object.cpp: (FunctionObjectImp::construct): Ditto.
- * kjs/nodes.cpp: (FuncExprNode::evaluate): Use Identifier:null() instead of Identifier:null.
- 2003-03-02 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Trey.
- - fixed 3158833 - ebay prefs page is so slow, it seems like a hang.
- 92% speed improvement on ebay prefs page.
- 1% speed improvement on js-ibench and js-performance plt suites.
-
- There were a couple of problems with the identifier hash table that
- I fixed:
-
- * kjs/identifier.cpp:
- (void Identifier::remove): Adjust the shrink threshold to avoid
- constantly growing and shrinking.
- * kjs/ustring.cpp:
- (UString::Rep::computeHash): Use a better hash function that
- avoids collisions for obvious data sets.
- === Safari-64 ===
- === Safari-63 ===
- 2003-02-26 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- - fixed 3156705 - REGRESSION: javascript menus improperly placed at umich.edu store
- * kjs/nodes.cpp:
- (StatListNode::execute): If the first statement's completion is
- not normal, return immediately.
- 2003-02-21 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - fixed 3142355 -- nil-deref in CFTimeZoneCopyAbbreviation
- The real problem wasn't with the current time zone, but with the UTC time zone.
- The poor sod had a broken /usr/share/zoneinfo directory, with a 0-byte-long UTC file.
- * kjs/date_object.cpp: (UTCTimeZone): Use CFTimeZoneCreateWithTimeIntervalFromGMT(NULL, 0.0)
- to get the universal time zone instead of getting it by name.
- === Safari-62 ===
- 2003-02-18 Darin Adler <darin@apple.com>
- Reviewed by Trey and Ken.
- - fixed 3142355 -- nil-deref in CFTimeZoneCopyAbbreviation
- Although I can't reproduce this bug, it seems that it's caused by CFTimeZoneCopyDefault returning NULL.
- I'm almost certain that the UTC time zone will be created successfully in this case, so I'll just use that.
- * kjs/date_object.cpp:
- (UTCTimeZone): Added. Gets the UTC time zone (once in a global).
- (CopyLocalTimeZone): Added. Gets the local time zone, but falls back to UTC.
- (gmtimeUsingCF): Use UTCTimeZone.
- (localtimeUsingCF): Use CopyLocalTimeZone.
- (mktimeUsingCF): Use CopyLocalTimeZone.
- (timegmUsingCF): Use UTCTimeZone.
- 2003-02-12 Darin Adler <darin@apple.com>
- Reviewed by Dave.
- - fixed 3145442 -- toString(16) is not working, causing non-ASCII characters in mac.com homepage to be munged
- * kjs/number_object.cpp: (NumberProtoFuncImp::call): Add handling for toString with a radix other than
- 10 passed as an argument.
- 2003-02-11 Trey Matteson <trey@apple.com>
- Set -seg1addr in our build styles, but not for the B&I build.
- This makes our SYMROOTS from B&I usable to determine symbols from crash
- logs from the field.
- Also nuked DeploymentFat build style.
- Reviewed by Ken.
- * JavaScriptCore.pbproj/project.pbxproj:
- 2003-02-04 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- * JavaScriptCore.pbproj/project.pbxproj: Updated to build the framework
- standalone instead of embedded when doing a B&I build for Panther.
- === Safari-55 ===
- 2003-01-29 Darin Adler <darin@apple.com>
- Reviewed by John.
- * kjs/scope_chain.cpp: Rolled out the fix to bug 3137084.
- It caused a massive storage leak, and probably didn't even fix the bug.
- 2003-01-28 Darin Adler <darin@apple.com>
- Reviewed by Ken.
- - fixed 3157318 -- hang at time zone page after clicking on map at www.time.gov
- * kjs/date_object.cpp: (KJS::KRFCDate_parseDate): Allow a comma after the day.
- Given how this code is structured, it allows commas in unwanted contexts too, but
- that's almost certainly harmless.
- 2003-01-28 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - fixed 3144918 -- Can't drill down multiple levels of categories when selling on ebay
- if first item in list is chosen
-
- The bug was caused by having array values in the property map past the storageLength cutoff
- in an array object; those values would not be seen when you do a get.
- * kjs/array_object.cpp:
- (ArrayInstanceImp::put): Implement a new rule for resizing the storage that is independent
- of the length. The old rule would sometimes make the storage very big if you added two elements
- in a row that both had large, but consecutive indexes. This eliminates any cases where we
- make sparse entries in the property map below the sparse array cutoff.
- (ArrayInstanceImp::resizeStorage): Don't ever make storage size bigger than the cutoff unless
- the caller specifically requests it.
- (ArrayInstanceImp::setLength): Change this so it only makes the storage smaller, never larger.
- We will actually enlarge the storage when putting elements in.
- 2003-01-25 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- * kjs/Makefile.am: Add dependencies so the .lut.h files get rebuilt if the script changes.
- === Safari-54 ===
- 2003-01-22 Darin Adler <darin@apple.com>
- Reviewed by Maciej.
- - fixed 3137084 -- Many non-reproducible crashers in ContextImp::mark / ScopeChain::mark
- * kjs/scope_chain.cpp: (ScopeChain::push): Add assertion.
- (ScopeChain::release): Fix while loop so that it decrements refCount of the first node in
- the chain too.
- 2003-01-21 Darin Adler <darin@apple.com>
- - correct our copyrights to 2003; copyright is based on year of publication, not year worked on
- 2003-01-16 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- - made minor tweaks to work better with Mozilla's JavaScript tests.
- * kjs/testkjs.cpp:
- (VersionFunctionImp::call): Implemented
- (main): Ignore files named -f (hack to match -f <filename syntax
- that moz JavaScript tests expect). Also use return code 3 instead
- of 1 for uncaught exception.
- 2003-01-16 Darin Adler <darin@apple.com>
- * kjs/number_object.cpp: (NumberObjectImp::construct):
- Fix build, remove stray space.
- 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.
- === Safari-52 ===
- 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.
- 2003-01-13 Darin Adler <darin@apple.com>
- * kjs/ustring.h: Fix spelling of occurrence.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- === Alexander-48 ===
- === Alexander-47 ===
- 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.
- === Alexander-46 ===
- 2002-12-28 Darin Adler <darin@apple.com>
- 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.
- === Alexander-45 ===
- 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.
- === Alexander-44 ===
- === Alexander-43 ===
- 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:
- === Alexander-42 ===
- === Alexander-41 ===
- === Alexander-40 ===
- 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:
- 2002-12-17 Darin Adler <darin@apple.com>
- Reviewed by Trey.
- * JavaScriptCore.pbproj/project.pbxproj: Removed signature.
- === Alexander-39 ===
- === Alexander-38 ===
- 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.
- === Alexander-37 ===
- === JavaScriptCore-37u2 ===
- 2002-12-15 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Darin.
- * JavaScriptCore.pbproj/project.pbxproj: Bump version to 37u2.
- 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.
- 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.
- 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.
-
- === Alexander-37u1 ===
- === Alexander-36 ===
- 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.
- 2002-12-11 Maciej Stachowiak <mjs@apple.com>
- Reviewed by Don.
- - 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):
- 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"
- 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.
- 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.
- 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.
- === Alexander-35 ===
- 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:
- 2002-12-04 Maciej Stachowiak <mjs@apple.com>
- Reviewed by: Darin Adler
- 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.
- 2002-12-04 Maciej Stachowiak <mjs@apple.com>
- Reviewed by: Richard Williamson
- * pcre/doc/*: Added.
- * pcre/testdata/*: Added.
- 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.
- == Rolled over to ChangeLog-2002-12-03 ==
|