⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 make-js-test-wrappers

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻
字号:
#!/usr/bin/perl -w# Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:## 1.  Redistributions of source code must retain the above copyright#     notice, this list of conditions and the following disclaimer. # 2.  Redistributions in binary form must reproduce the above copyright#     notice, this list of conditions and the following disclaimer in the#     documentation and/or other materials provided with the distribution. # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of#     its contributors may be used to endorse or promote products derived#     from this software without specific prior written permission. ## THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# Script to generate HTML wrappers for JavaScript tests from templatesuse strict;use FindBin;use lib $FindBin::Bin;use File::Basename;use File::Find;use Getopt::Long;use webkitdirs;sub directoryFilter;sub findTemplateFiles(@);my $showHelp;my $result = GetOptions(    "help"       => \$showHelp,);if (!$result || $showHelp) {    print STDERR basename($0) . " [-h|--help] [path ...]\n";    exit 1;}setConfiguration();my $productDir = productDir();chdirWebKit();my @templates = findTemplateFiles(@ARGV);for my $tfile (@templates) {    my $tpath = $tfile;    $tpath =~ s:/resources/TEMPLATE.html$::;    print "${tpath}\n";    chdirWebKit();    chdir($tpath);    my @files;    my $fileFilter = sub {        push @files, $File::Find::name if substr($_, -3) eq ".js";    };    find({ preprocess => \&directoryFilter, wanted => $fileFilter }, "resources");    open TEMPLATE, "<resources/TEMPLATE.html";    my $template = do { local $/; <TEMPLATE> };    close TEMPLATE;    my $templateNegative = $template;    if (-e "resources/TEMPLATE-n.html") {        open TEMPLATE, "<resources/TEMPLATE-n.html";        $templateNegative = do { local $/; <TEMPLATE> };        close TEMPLATE;    }    for my $file (@files) {        next if $file =~ /js-test-.*\.js$/;        next if $file =~ /standalone-.*\.js$/;        next if $file =~ /SVGTestCase\.js/;        next if $file =~ /WMLTestCase\.js/;        next if $file =~ m:resources/bom-in-file-retains-correct-offset\.js$:; # has a custom template        next if $file =~ m:resources/NSResolver-exceptions\.js$:;        next if $file =~ m:resources/WindowProperties\.js$:;        next if $file =~ m:resources/altGlyph-dom\.js$:;        next if $file =~ m:resources/attr-case-sensitivity\.js$:;        next if $file =~ m:resources/codegen-temporaries-multiple-global-blocks-1\.js$:;        next if $file =~ m:resources/codegen-temporaries-multiple-global-blocks-2\.js$:;        next if $file =~ m:resources/constructors-cached-navigate\.js$:;        next if $file =~ m:resources/frame-loading-via-document-write\.js$:;        next if $file =~ m:resources/id-fastpath-almost-strict\.js$:;        next if $file =~ m:resources/id-fastpath-strict\.js$:;        next if $file =~ m:resources/intersectsNode\.js$:;        next if $file =~ m:resources/p-in-scope\.js$:;        next if $file =~ m:resources/script-element-gc\.js$:;        next if $file =~ m:resources/script-element-gc\.js$:;        next if $file =~ m:resources/script3\.js$:;        next if $file =~ m:resources/script4\.js$:;        next if $file =~ m:resources/script5\.js$:;        next if $file =~ m:resources/scripted-random\.js$:;        next if $file =~ m:resources/select-options-remove\.js$:;        next if $file =~ m:resources/shadow-offset\.js$:;        next if $file =~ m:resources/tabindex-focus-blur-all\.js$:;        next if $file =~ m:resources/use-instanceRoot-event-bubbling\.js$:;        next if $file =~ m:resources/use-instanceRoot-event-listeners\.js$:;        next if $file =~ m:resources/wrapper-identity-base\.js$:;        next if $file =~ m:resources/xhtml-scripts\.js$:;        my $html = $file;        $html =~ s:resources/(.*)\.js:$1.html:;        next if -f "$html-disabled";        system("grep -q 'successfullyParsed =' $file");        if ($? != 0) {            `echo "" >> "${file}"`;            `echo "var successfullyParsed = true;" >> "${file}"`;        }                print "    ${html}\n";        open HTML, ">$html";        my $output = ($file =~ /-n\.js/) ? $templateNegative : $template;        $output =~ s:YOUR_JS_FILE_HERE:$file:;        print HTML $output;                close HTML;    }}exit 0;sub directoryFilter{    return () if basename($File::Find::dir) eq ".svn";    return @_;}sub findTemplateFiles(@) {    my @args = @_;    my @templateFiles;    push @args, "LayoutTests" if scalar(@args) == 0;    my @paths = map { -f $_ ? dirname($_) : $_ } @args;    my $fileFilter = sub {        push @templateFiles, $File::Find::name if $_ eq "TEMPLATE.html";    };    find({ preprocess => \&directoryFilter, wanted => $fileFilter }, @paths);    return @templateFiles;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -