Bug 161521

Summary: jsc: fix cmake build missing symbol getPropertySlot
Product: WebKit Reporter: JF Bastien <jfbastien>
Component: JavaScriptCoreAssignee: JF Bastien <jfbastien>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, mark.lam, msaboff, sbarati
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
fpizlo: review-
patch none

Description JF Bastien 2016-09-01 18:23:46 PDT
The following patch moved things around: https://bugs.webkit.org/show_bug.cgi?id=161499

It seems to upset the cmake build with:

Undefined symbols for architecture x86_64:
  "JSC::JSObject::getPropertySlot(JSC::ExecState*, unsigned int, JSC::PropertySlot&)", referenced from:
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlDateTimeFormat.cpp.o
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlNumberFormat.cpp.o
  "JSC::JSObject::getNonIndexPropertySlot(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&)", referenced from:
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlDateTimeFormat.cpp.o
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlNumberFormat.cpp.o
ld: symbol(s) not found for architecture x86_64

Sure enough, I nm through all the .o files and all references to getPropertySlot are U.

The non-template functions are huge anyways, it seems optimistic to me that they would *ever* be inlined.
Comment 1 JF Bastien 2016-09-01 18:25:47 PDT
Created attachment 287710 [details]
patch
Comment 2 Filip Pizlo 2016-09-01 18:32:47 PDT
Comment on attachment 287710 [details]
patch

But these are marked ALWAYS_INLINE.  I believe that there are a few places where we actually rely on them being inlined.

You should carefully test performance with such a change.  I'm happy to r+ if you've run JetStream, Speedometer, and PLT3.
Comment 3 JF Bastien 2016-09-01 18:50:16 PDT
Created attachment 287713 [details]
patch

Fixed by including JSCInlines.h instead of moving things to .cpp file (Fil and others pointed out that this would have perf implications, etc).

This also fixes the cmake build.
Comment 4 WebKit Commit Bot 2016-09-01 18:53:04 PDT
Attachment 287713 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/runtime/IntlNumberFormat.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Saam Barati 2016-09-01 19:00:03 PDT
Comment on attachment 287713 [details]
patch

r=me
I'm going to let EWS build before cq+
Comment 6 WebKit Commit Bot 2016-09-01 19:45:46 PDT
Comment on attachment 287713 [details]
patch

Clearing flags on attachment: 287713

Committed r205332: <http://trac.webkit.org/changeset/205332>
Comment 7 WebKit Commit Bot 2016-09-01 19:45:50 PDT
All reviewed patches have been landed.  Closing bug.