Changeset 211306 in webkit
- Timestamp:
- Jan 27, 2017, 3:29:26 PM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
create_hash_table (modified) (5 diffs)
-
runtime/StringConstructor.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r211300 r211306 1 2017-01-27 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 Extend create_hash_table to specify Intrinsic 4 https://bugs.webkit.org/show_bug.cgi?id=167505 5 6 Reviewed by Sam Weinig. 7 8 This patch extends create_hash_table to specify Intrinsic. 9 We can set Intrinsic in the static property table definition 10 in runtime/XXX.h. 11 12 And drop the adhoc code for String.fromCharCode in create_hash_table. 13 14 * create_hash_table: 15 * runtime/StringConstructor.cpp: 16 1 17 2017-01-27 Filip Pizlo <fpizlo@apple.com> 2 18 -
trunk/Source/JavaScriptCore/create_hash_table
r207576 r211306 77 77 78 78 $inside = 0; 79 } elsif (/^(\S+)\s*(\S+)\s*([\w\|]*)\s*(\w*)\s* $/ && $inside) {79 } elsif (/^(\S+)\s*(\S+)\s*([\w\|]*)\s*(\w*)\s*(\w*)\s*$/ && $inside) { 80 80 my $key = $1; 81 81 my $val = $2; 82 82 my $att = $3; 83 83 my $param = $4; 84 my $intrinsic = $5; 84 85 85 86 push(@keys, $key); … … 91 92 92 93 if ($att =~ m/Function/) { 93 push(@values, { "type" => "Function", "function" => $val, "params" => (length($param) ? $param : "") });94 push(@values, { "type" => "Function", "function" => $val, "params" => (length($param) ? $param : ""), "intrinsic" => (length($intrinsic) ? $intrinsic : "NoIntrinsic") }); 94 95 #printf STDERR "WARNING: Number of arguments missing for $key/$val\n" if (length($param) == 0); 95 96 } elsif ($att =~ m/Accessor/) { … … 302 303 my $firstCastStr = ""; 303 304 my $secondCastStr = ""; 305 my $intrinsic = "NoIntrinsic"; 304 306 305 307 if ($values[$i]{"type"} eq "Function") { … … 307 309 $firstValue = $values[$i]{"function"}; 308 310 $secondValue = $values[$i]{"params"}; 311 $intrinsic = $values[$i]{"intrinsic"}; 309 312 } elsif ($values[$i]{"type"} eq "Accessor") { 310 313 $firstCastStr = "static_cast<NativeFunction>"; … … 330 333 } 331 334 332 my $intrinsic = "NoIntrinsic";333 $intrinsic = "FromCharCodeIntrinsic" if ($key eq "fromCharCode");334 if ($name eq "arrayPrototypeTable") {335 $intrinsic = "ArrayPushIntrinsic" if ($key eq "push");336 $intrinsic = "ArrayPopIntrinsic" if ($key eq "pop");337 }338 339 335 if ($values[$i]{"type"} eq "Function" && $firstValue eq "JSBuiltin") { 340 336 my $tableHead = $name; -
trunk/Source/JavaScriptCore/runtime/StringConstructor.cpp
r209229 r211306 45 45 /* Source for StringConstructor.lut.h 46 46 @begin stringConstructorTable 47 fromCharCode stringFromCharCode DontEnum|Function 1 47 fromCharCode stringFromCharCode DontEnum|Function 1 FromCharCodeIntrinsic 48 48 fromCodePoint stringFromCodePoint DontEnum|Function 1 49 49 raw JSBuiltin DontEnum|Function 1
Note:
See TracChangeset
for help on using the changeset viewer.