]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - create_hash_table
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / create_hash_table
index 88e844704ddc34b0ad3b936e4138c401eb64b681..b26eed0cf8404cd88c4f0c1a56d402f3b38677cc 100755 (executable)
@@ -94,6 +94,11 @@ while (<IN>) {
         if ($att =~ m/Function/) {
             push(@values, { "type" => "Function", "function" => $val, "params" => (length($param) ? $param : "") });
             #printf STDERR "WARNING: Number of arguments missing for $key/$val\n" if (length($param) == 0);
+        } elsif ($att =~ m/Accessor/) {
+            my $get = $val;
+            my $put = "nullptr";
+            $hasSetter = "true";
+            push(@values, { "type" => "Accessor", "get" => $get, "put" => $put });
         } elsif (length($att)) {
             my $get = $val;
             my $put = "0";
@@ -285,6 +290,11 @@ sub output() {
             $firstCastStr = "static_cast<NativeFunction>";
             $firstValue = $values[$i]{"function"};
             $secondValue = $values[$i]{"params"};
+        } elsif ($values[$i]{"type"} eq "Accessor") {
+            $firstCastStr = "static_cast<NativeFunction>";
+            $secondCastStr = "static_cast<NativeFunction>";
+            $firstValue = $values[$i]{"get"};
+            $secondValue = $values[$i]{"put"};
         } elsif ($values[$i]{"type"} eq "Property") {
             $firstCastStr = "static_cast<PropertySlot::GetValueFunc>";
             $secondCastStr = "static_cast<PutPropertySlot::PutValueFunc>";
@@ -320,7 +330,7 @@ sub output() {
         $i++;
     }
     print "};\n\n";
-    print "extern const struct HashTable $name =\n";
+    print "JS_EXPORT_PRIVATE extern const struct HashTable $name =\n";
     print "    \{ $packedSize, $compactHashSizeMask, $hasSetter, $nameEntries, 0, $nameIndex \};\n";
     print "} // namespace\n";
 }