source: webkit/trunk/JavaScriptCore/JavaScriptCore.exp@ 27419

Last change on this file since 27419 was 27419, checked in by Darin Adler, 18 years ago

JavaScriptCore:

Reviewed by Maciej.

A first step toward removing the PCRE features we don't use.
This gives a 0.8% speedup on SunSpider, and a 6.5% speedup on
the SunSpider regular expression test.

Replaced the public interface with one that doesn't use the
name PCRE. Removed code we don't need for JavaScript and various
configurations we don't use. This is in preparation for still
more changes in the future. We'll probably switch to C++ and
make some even more significant changes to the regexp engine
to get some additional speed.

There's probably additional unused stuff that I haven't
deleted yet.

This does mean that our PCRE is now a fork, but I think that's
not really a big deal.

  • JavaScriptCore.exp: Remove the 5 old entry points and add the 3 new entry points for WebCore's direct use of the regular expression engine.
  • kjs/config.h: Remove the USE(PCRE16) define. I decided to flip its sense and now there's a USE(POSIX_REGEX) instead, which should probably not be set by anyone. Maybe later we'll just get rid of it altogether.
  • kjs/regexp.h:
  • kjs/regexp.cpp: (KJS::RegExp::RegExp): Switch to new jsRegExp function names and defines. Cut down on the number of functions used. (KJS::RegExp::~RegExp): Ditto. (KJS::RegExp::match): Ditto.
  • pcre/dftables.c: (main): Get rid of ctype_letter and ctype_meta, which are unused.
  • pcre/pcre-config.h: Get rid of EBCIDIC, PCRE_DATA_SCOPE, const, size_t, HAVE_STRERROR, HAVE_MEMMOVE, HAVE_BCOPY, NEWLINE, POSIX_MALLOC_THRESHOLD, NO_RECURSE, SUPPORT_UCP, SUPPORT_UTF8, and JAVASCRIPT. These are all no longer configurable in our copy of the library.
  • pcre/pcre.h: Remove the macro-based kjs prefix hack, the PCRE version macros, PCRE_UTF16, the code to set up PCRE_DATA_SCOPE, the include of <stdlib.h>, and most of the constants and functions defined in this header. Changed the naming scheme to use a JSRegExp prefix rather than a pcre prefix. In the future, we'll probably change this to be a C++ header.
  • pcre/pcre_compile.c: Removed all unused code branches, including many whole functions and various byte codes. Kept changes outside of removal to a minimum. (check_escape): (first_significant_code): (find_fixedlength): (find_recurse): (could_be_empty_branch): (compile_branch): (compile_regex): (is_anchored): (is_startline): (find_firstassertedchar): (jsRegExpCompile): Renamed from pcre_compile2 and changed the parameters around a bit. (jsRegExpFree): Added.
  • pcre/pcre_exec.c: Removed many unused opcodes and variables. Also started tearing down the NO_RECURSE mechanism since it's now the default. In some cases there were things in the explicit frame that could be turned into plain old local variables and other small like optimizations. (pchars): (match_ref): (match): Changed parameters quite a bit since it's now not used recursively. (jsRegExpExecute): Renamed from pcre_exec.
  • pcre/pcre_internal.h: Get rid of PCRE_DEFINITION, PCRE_SPTR, PCRE_IMS, PCRE_ICHANGED, PCRE_NOPARTIAL, PCRE_STUDY_MAPPED, PUBLIC_OPTIONS, PUBLIC_EXEC_OPTIONS, PUBLIC_DFA_EXEC_OPTIONS, PUBLIC_STUDY_OPTIONS, MAGIC_NUMBER, 16 of the opcodes, _pcre_utt, _pcre_utt_size, _pcre_try_flipped, _pcre_ucp_findprop, and _pcre_valid_utf8. Also moved pcre_malloc and pcre_free here.
  • pcre/pcre_maketables.c: Changed to only compile in dftables. Also got rid of many of the tables that we don't use.
  • pcre/pcre_tables.c: Removed the unused Unicode property tables.
  • pcre/pcre_ucp_searchfuncs.c: Removed everything except for _pcre_ucp_othercase.
  • pcre/pcre_xclass.c: (_pcre_xclass): Removed uneeded support for classes based on Unicode properties.
  • wtf/FastMallocPCRE.cpp: Removed unused bits. It would be good to eliminate this completely, but we need the regular expression code to be C++ first.
  • pcre/pcre_fullinfo.c:
  • pcre/pcre_get.c:
  • pcre/ucp.h: Files that are no longer needed. I didn't remove them with this check-in, because I didn't want to modify all the project files.

WebCore:

Reviewed by Maciej.

  • page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
  • page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement): Remove use of ":digit:" syntax. This hasn't worked for some time. Use "\d" instead.
  • platform/RegularExpression.h: Remove the unused cap function. We can add it back later if we find we need it.
  • platform/RegularExpression.cpp: (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore regular expression entry point changes. (WebCore::RegularExpression::Private::~Private): Ditto. (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL. This means that regular expressions with metacharactesr like in them won't work any more with non-whole-string searches, but we don't use any regular expressions like that.
File size: 10.4 KB
Line 
1_JSCheckScriptSyntax
2_JSClassCreate
3_JSClassRelease
4_JSClassRetain
5_JSContextGetGlobalObject
6_JSEvaluateScript
7_JSGarbageCollect
8_JSGlobalContextCreate
9_JSGlobalContextRelease
10_JSGlobalContextRetain
11_JSObjectCallAsConstructor
12_JSObjectCallAsFunction
13_JSObjectCopyPropertyNames
14_JSObjectDeleteProperty
15_JSObjectGetPrivate
16_JSObjectGetProperty
17_JSObjectGetPropertyAtIndex
18_JSObjectGetPrototype
19_JSObjectHasProperty
20_JSObjectIsConstructor
21_JSObjectIsFunction
22_JSObjectMake
23_JSObjectMakeConstructor
24_JSObjectMakeFunction
25_JSObjectMakeFunctionWithCallback
26_JSObjectSetPrivate
27_JSObjectSetProperty
28_JSObjectSetPropertyAtIndex
29_JSObjectSetPrototype
30_JSPropertyNameAccumulatorAddName
31_JSPropertyNameArrayGetCount
32_JSPropertyNameArrayGetNameAtIndex
33_JSPropertyNameArrayRelease
34_JSPropertyNameArrayRetain
35_JSStringCopyCFString
36_JSStringCreateWithCFString
37_JSStringCreateWithCharacters
38_JSStringCreateWithUTF8CString
39_JSStringGetCharactersPtr
40_JSStringGetLength
41_JSStringGetMaximumUTF8CStringSize
42_JSStringGetUTF8CString
43_JSStringIsEqual
44_JSStringIsEqualToUTF8CString
45_JSStringRelease
46_JSStringRetain
47_JSValueGetType
48_JSValueIsBoolean
49_JSValueIsEqual
50_JSValueIsInstanceOfConstructor
51_JSValueIsNull
52_JSValueIsNumber
53_JSValueIsObject
54_JSValueIsObjectOfClass
55_JSValueIsStrictEqual
56_JSValueIsString
57_JSValueIsUndefined
58_JSValueMakeBoolean
59_JSValueMakeNull
60_JSValueMakeNumber
61_JSValueMakeString
62_JSValueMakeUndefined
63_JSValueProtect
64_JSValueToBoolean
65_JSValueToNumber
66_JSValueToObject
67_JSValueToStringCopy
68_JSValueUnprotect
69_KJS_JSCreateNativeJSObject
70_KJS_JSObject_JSFinalize
71_KJS_JSObject_JSObjectCall
72_KJS_JSObject_JSObjectEval
73_KJS_JSObject_JSObjectGetMember
74_KJS_JSObject_JSObjectGetSlot
75_KJS_JSObject_JSObjectRemoveMember
76_KJS_JSObject_JSObjectSetMember
77_KJS_JSObject_JSObjectSetSlot
78_KJS_JSObject_JSObjectToString
79_WTFLog
80_WTFLogVerbose
81_WTFReportArgumentAssertionFailure
82_WTFReportAssertionFailure
83_WTFReportAssertionFailureWithMessage
84_WTFReportError
85_WTFReportFatalError
86__NPN_CreateObject
87__NPN_DeallocateObject
88__NPN_Enumerate
89__NPN_Evaluate
90__NPN_GetIntIdentifier
91__NPN_GetProperty
92__NPN_GetStringIdentifier
93__NPN_GetStringIdentifiers
94__NPN_IdentifierIsString
95__NPN_Invoke
96__NPN_InvokeDefault
97__NPN_ReleaseObject
98__NPN_ReleaseVariantValue
99__NPN_RemoveProperty
100__NPN_RetainObject
101__NPN_SetException
102__NPN_SetProperty
103__NPN_UTF8FromIdentifier
104__Z23_NPN_CreateScriptObjectP4_NPPPN3KJS8JSObjectEN3WTF10PassRefPtrINS1_8Bindings10RootObjectEEES8_
105__Z25_NPN_CreateNoScriptObjectv
106__ZN3KJS10Identifier11addSlowCaseEPNS_7UString3RepE
107__ZN3KJS10Identifier3addEPKNS_5UCharEi
108__ZN3KJS10Identifier3addEPKc
109__ZN3KJS10Identifier5equalEPKNS_7UString3RepEPKc
110__ZN3KJS10throwErrorEPNS_9ExecStateENS_9ErrorTypeE
111__ZN3KJS10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKc
112__ZN3KJS11Interpreter10globalExecEv
113__ZN3KJS11Interpreter11checkSyntaxERKNS_7UStringEiPKNS_5UCharEi
114__ZN3KJS11Interpreter11checkSyntaxERKNS_7UStringEiS3_
115__ZN3KJS11Interpreter15restoreBuiltinsERKNS_13SavedBuiltinsE
116__ZN3KJS11Interpreter16initGlobalObjectEv
117__ZN3KJS11Interpreter16stopTimeoutCheckEv
118__ZN3KJS11Interpreter17startTimeoutCheckEv
119__ZN3KJS11Interpreter21shouldPrintExceptionsEv
120__ZN3KJS11Interpreter24setShouldPrintExceptionsEb
121__ZN3KJS11Interpreter4markEv
122__ZN3KJS11Interpreter6s_hookE
123__ZN3KJS11Interpreter8evaluateERKNS_7UStringEiPKNS_5UCharEiPNS_7JSValueE
124__ZN3KJS11Interpreter8evaluateERKNS_7UStringEiS3_PNS_7JSValueE
125__ZN3KJS11InterpreterC1EPNS_14JSGlobalObjectE
126__ZN3KJS11InterpreterC1Ev
127__ZN3KJS11InterpreterC2EPNS_14JSGlobalObjectE
128__ZN3KJS11InterpreterD1Ev
129__ZN3KJS11InterpreterD2Ev
130__ZN3KJS11JSImmediate4typeEPKNS_7JSValueE
131__ZN3KJS11JSImmediate8toObjectEPKNS_7JSValueEPNS_9ExecStateE
132__ZN3KJS11JSImmediate8toStringEPKNS_7JSValueE
133__ZN3KJS11PropertyMap11getLocationERKNS_10IdentifierE
134__ZN3KJS11PropertyMap5clearEv
135__ZN3KJS11PropertyMap7restoreERKNS_15SavedPropertiesE
136__ZN3KJS11PropertyMapD1Ev
137__ZN3KJS12DateInstance4infoE
138__ZN3KJS12PropertySlot15undefinedGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKS0_
139__ZN3KJS12jsNumberCellEd
140__ZN3KJS13ArrayInstance4infoE
141__ZN3KJS13SavedBuiltinsC1Ev
142__ZN3KJS13SavedBuiltinsD1Ev
143__ZN3KJS13jsOwnedStringERKNS_7UStringE
144__ZN3KJS14StringInstance14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
145__ZN3KJS14StringInstance16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
146__ZN3KJS14StringInstance18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
147__ZN3KJS14StringInstance18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
148__ZN3KJS14StringInstance3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
149__ZN3KJS14StringInstance4infoE
150__ZN3KJS14StringInstanceC1EPNS_8JSObjectERKNS_7UStringE
151__ZN3KJS14StringInstanceC2EPNS_8JSObjectERKNS_7UStringE
152__ZN3KJS15JSWrapperObject4markEv
153__ZN3KJS15SavedPropertiesC1Ev
154__ZN3KJS15SavedPropertiesD1Ev
155__ZN3KJS16RuntimeObjectImp4infoE
156__ZN3KJS16RuntimeObjectImpC1EPNS_8Bindings8InstanceE
157__ZN3KJS17PropertyNameArray3addERKNS_10IdentifierE
158__ZN3KJS19InternalFunctionImp4infoE
159__ZN3KJS19InternalFunctionImpC2EPNS_17FunctionPrototypeERKNS_10IdentifierE
160__ZN3KJS4List6appendEPNS_7JSValueE
161__ZN3KJS4List7releaseEv
162__ZN3KJS4ListC1Ev
163__ZN3KJS6JSCell9getObjectEv
164__ZN3KJS6JSCellnwEm
165__ZN3KJS6JSLock12DropAllLocksC1Ev
166__ZN3KJS6JSLock12DropAllLocksD1Ev
167__ZN3KJS6JSLock14registerThreadEv
168__ZN3KJS6JSLock4lockEv
169__ZN3KJS6JSLock6unlockEv
170__ZN3KJS6JSLock9lockCountEv
171__ZN3KJS6Lookup9findEntryEPKNS_9HashTableERKNS_10IdentifierE
172__ZN3KJS6Parser11prettyPrintERKNS_7UStringEPiPS1_
173__ZN3KJS7CStringD1Ev
174__ZN3KJS7UString3Rep4nullE
175__ZN3KJS7UString3Rep7destroyEv
176__ZN3KJS7UString6appendERKS0_
177__ZN3KJS7UStringC1EPKNS_5UCharEi
178__ZN3KJS7UStringC1EPKc
179__ZN3KJS7UStringC1ERKS0_S2_
180__ZN3KJS7UStringaSEPKc
181__ZN3KJS8Bindings10RootObject10invalidateEv
182__ZN3KJS8Bindings10RootObject11gcUnprotectEPNS_8JSObjectE
183__ZN3KJS8Bindings10RootObject17_createRootObjectE
184__ZN3KJS8Bindings10RootObject19setCreateRootObjectEPFN3WTF10PassRefPtrIS1_EEPvE
185__ZN3KJS8Bindings10RootObject6createEPKvN3WTF10PassRefPtrINS_11InterpreterEEE
186__ZN3KJS8Bindings10RootObject9gcProtectEPNS_8JSObjectE
187__ZN3KJS8Bindings10RootObjectD1Ev
188__ZN3KJS8Bindings10throwErrorEPNS_9ExecStateENS_9ErrorTypeEP8NSString
189__ZN3KJS8Bindings23convertObjcValueToValueEPNS_9ExecStateEPvNS0_13ObjcValueTypeEPNS0_10RootObjectE
190__ZN3KJS8Bindings23convertValueToObjcValueEPNS_9ExecStateEPNS_7JSValueENS0_13ObjcValueTypeE
191__ZN3KJS8Bindings8Instance18didExecuteFunctionEv
192__ZN3KJS8Bindings8Instance21setDidExecuteFunctionEPFvPNS_9ExecStateEPNS_8JSObjectEE
193__ZN3KJS8Bindings8Instance32createBindingForLanguageInstanceENS1_15BindingLanguageEPvN3WTF10PassRefPtrINS0_10RootObjectEEE
194__ZN3KJS8Debugger12sourceUnusedEPNS_9ExecStateEi
195__ZN3KJS8Debugger6attachEPNS_11InterpreterE
196__ZN3KJS8Debugger9exceptionEPNS_9ExecStateEiiPNS_7JSValueE
197__ZN3KJS8DebuggerC2Ev
198__ZN3KJS8DebuggerD2Ev
199__ZN3KJS8JSObject11hasInstanceEPNS_9ExecStateEPNS_7JSValueE
200__ZN3KJS8JSObject12removeDirectERKNS_10IdentifierE
201__ZN3KJS8JSObject14callAsFunctionEPNS_9ExecStateEPS0_RKNS_4ListE
202__ZN3KJS8JSObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
203__ZN3KJS8JSObject14deletePropertyEPNS_9ExecStateEj
204__ZN3KJS8JSObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
205__ZN3KJS8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
206__ZN3KJS8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPPNS_7JSValueE
207__ZN3KJS8JSObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
208__ZN3KJS8JSObject3putEPNS_9ExecStateEjPNS_7JSValueEi
209__ZN3KJS8JSObject4callEPNS_9ExecStateEPS0_RKNS_4ListE
210__ZN3KJS8JSObject4markEv
211__ZN3KJS8JSObject9constructEPNS_9ExecStateERKNS_4ListE
212__ZN3KJS8JSObject9constructEPNS_9ExecStateERKNS_4ListERKNS_10IdentifierERKNS_7UStringEi
213__ZN3KJS8JSObject9putDirectERKNS_10IdentifierEPNS_7JSValueEi
214__ZN3KJS8JSObject9putDirectERKNS_10IdentifierEii
215__ZN3KJS8jsStringEPKc
216__ZN3KJS8jsStringERKNS_7UStringE
217__ZN3KJS9Collector15numInterpretersEv
218__ZN3KJS9Collector15recordExtraCostEm
219__ZN3KJS9Collector19numProtectedObjectsEv
220__ZN3KJS9Collector20rootObjectTypeCountsEv
221__ZN3KJS9Collector23collectOnMainThreadOnlyEPNS_7JSValueE
222__ZN3KJS9Collector4sizeEv
223__ZN3KJS9Collector7collectEv
224__ZN3KJS9Collector7protectEPNS_7JSValueE
225__ZN3KJS9Collector9unprotectEPNS_7JSValueE
226__ZN3KJSeqERKNS_7UStringEPKc
227__ZN3WTF10fastCallocEmm
228__ZN3WTF10fastMallocEm
229__ZN3WTF11fastReallocEPvm
230__ZN3WTF8fastFreeEPv
231__ZNK3KJS11Interpreter12builtinArrayEv
232__ZNK3KJS11Interpreter12globalObjectEv
233__ZNK3KJS11Interpreter12saveBuiltinsERNS_13SavedBuiltinsE
234__ZNK3KJS11Interpreter15builtinFunctionEv
235__ZNK3KJS11Interpreter22builtinObjectPrototypeEv
236__ZNK3KJS11Interpreter22builtinStringPrototypeEv
237__ZNK3KJS11Interpreter24builtinFunctionPrototypeEv
238__ZNK3KJS11PropertyMap3getERKNS_10IdentifierE
239__ZNK3KJS11PropertyMap4saveERNS_15SavedPropertiesE
240__ZNK3KJS12DateInstance7getTimeERdRi
241__ZNK3KJS13ArrayInstance7getItemEj
242__ZNK3KJS19InternalFunctionImp14implementsCallEv
243__ZNK3KJS19InternalFunctionImp21implementsHasInstanceEv
244__ZNK3KJS4List2atEi
245__ZNK3KJS4List5sliceEiRS0_
246__ZNK3KJS6JSCell17getTruncatedInt32ERi
247__ZNK3KJS6JSCell18getTruncatedUInt32ERj
248__ZNK3KJS6JSCell9getNumberERd
249__ZNK3KJS6JSCell9getNumberEv
250__ZNK3KJS6JSCell9getStringERNS_7UStringE
251__ZNK3KJS6JSCell9getStringEv
252__ZNK3KJS6JSCell9getUInt32ERj
253__ZNK3KJS7JSValue15toInt32SlowCaseEPNS_9ExecStateERb
254__ZNK3KJS7JSValue16toUInt32SlowCaseEPNS_9ExecStateERb
255__ZNK3KJS7JSValue7toFloatEPNS_9ExecStateE
256__ZNK3KJS7JSValue9toIntegerEPNS_9ExecStateE
257__ZNK3KJS7UString10UTF8StringEv
258__ZNK3KJS7UString14toStrictUInt32EPb
259__ZNK3KJS7UString5asciiEv
260__ZNK3KJS7UString6is8BitEv
261__ZNK3KJS7UString8toUInt32EPb
262__ZNK3KJS7UString8toUInt32EPbb
263__ZNK3KJS8Bindings10RootObject11interpreterEv
264__ZNK3KJS8Bindings8Instance10rootObjectEv
265__ZNK3KJS8JSObject11hasPropertyEPNS_9ExecStateERKNS_10IdentifierE
266__ZNK3KJS8JSObject12defaultValueEPNS_9ExecStateENS_6JSTypeE
267__ZNK3KJS8JSObject14implementsCallEv
268__ZNK3KJS8JSObject18getPrimitiveNumberEPNS_9ExecStateERd
269__ZNK3KJS8JSObject19implementsConstructEv
270__ZNK3KJS8JSObject21implementsHasInstanceEv
271__ZNK3KJS8JSObject3getEPNS_9ExecStateERKNS_10IdentifierE
272__ZNK3KJS8JSObject3getEPNS_9ExecStateEj
273__ZNK3KJS8JSObject4typeEv
274__ZNK3KJS8JSObject6canPutEPNS_9ExecStateERKNS_10IdentifierE
275__ZNK3KJS8JSObject8toNumberEPNS_9ExecStateE
276__ZNK3KJS8JSObject8toObjectEPNS_9ExecStateE
277__ZNK3KJS8JSObject8toStringEPNS_9ExecStateE
278__ZNK3KJS8JSObject9classInfoEv
279__ZNK3KJS8JSObject9classNameEv
280__ZNK3KJS8JSObject9toBooleanEPNS_9ExecStateE
281__ZNK3KJS9ExecState18lexicalInterpreterEv
282__ZTVN3KJS14StringInstanceE
283__ZTVN3KJS15JSWrapperObjectE
284__ZTVN3KJS19InternalFunctionImpE
285__ZTVN3KJS8JSObjectE
286_jsRegExpCompile
287_jsRegExpExecute
288_jsRegExpFree
289_jscore_collector_introspection
290_jscore_fastmalloc_introspection
291_kJSClassDefinitionEmpty
292_kjs_strtod
Note: See TracBrowser for help on using the repository browser.