Merge pull request #2705 from dumganhar/master

Moving JS bytecode generated tool (jsbcc) from 'tools/jsbcc' to 'cocos2d-console'.
This commit is contained in:
James Chen 2013-06-01 19:56:22 -07:00
commit 5ac2f4f597
9 changed files with 4 additions and 738 deletions

3
.gitmodules vendored
View File

@ -10,3 +10,6 @@
[submodule "external/emscripten"]
path = external/emscripten
url = https://github.com/kripken/emscripten.git
[submodule "tools/cocos2d-console"]
path = tools/cocos2d-console
url = https://github.com/cocos2d/cocos2d-console.git

1
tools/cocos2d-console Submodule

@ -0,0 +1 @@
Subproject commit a44729e6b2ed7d9be5fb3847e624bbe82d4384aa

View File

@ -1,11 +0,0 @@
jsbcc stands for JavasSript Byte Code Compiler.
It compiles javascript files to SpiderMonkey byte code files. It supports Mac and win32 now.
Usage:
jsbcc input_js_file [byte_code_file]
Note: it also supports pipeline on Mac, so you can use it like this:
ls *.js | jsbcc
Furthermore, 2 scripts supplied to help: "jsbcc.sh" on Mac and "jsbcc.bat" on win32
jsbcc.sh/jsbcc.bat js_root_dir
js_root_dir is the root directory of js source files. The scripts search and compile js source files recrusively.

View File

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{BD6738AE-6468-4881-B32B-5749DCF95511}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>jsbcc</RootNamespace>
<ProjectName>jsbcc</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;XP_WIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\scripting\javascript\spidermonkey-win32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\..\scripting\javascript\spidermonkey-win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Ws2_32.lib;mozjs.lib</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(ProjectDir)..\..\scripting\javascript\spidermonkey-win32\lib\mozjs.dll" "$(TargetDir)"
copy "$(ProjectDir)src\jsbcc.bat" "$(TargetDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;XP_WIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\scripting\javascript\spidermonkey-win32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\..\scripting\javascript\spidermonkey-win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Ws2_32.lib;mozjs.lib</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>copy "$(ProjectDir)..\..\scripting\javascript\spidermonkey-win32\lib\mozjs.dll" "$(TargetDir)"
copy "$(ProjectDir)src\jsbcc.bat" "$(TargetDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\main.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,396 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
6579750B172D6EBE000DDA7A /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6579750A172D6EBE000DDA7A /* main.cpp */; };
65797553172D7244000DDA7A /* libjs_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 65797552172D722A000DDA7A /* libjs_static.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
65797507172D6EBE000DDA7A /* jsbcc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jsbcc; sourceTree = BUILT_PRODUCTS_DIR; };
6579750A172D6EBE000DDA7A /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
65797516172D722A000DDA7A /* BitArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BitArray.h; sourceTree = "<group>"; };
65797518172D722A000DDA7A /* Root.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Root.h; sourceTree = "<group>"; };
6579751A172D722A000DDA7A /* HashTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HashTable.h; sourceTree = "<group>"; };
6579751B172D722A000DDA7A /* HeapAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HeapAPI.h; sourceTree = "<group>"; };
6579751C172D722A000DDA7A /* LegacyIntTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyIntTypes.h; sourceTree = "<group>"; };
6579751D172D722A000DDA7A /* MemoryMetrics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryMetrics.h; sourceTree = "<group>"; };
6579751E172D722A000DDA7A /* TemplateLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TemplateLib.h; sourceTree = "<group>"; };
6579751F172D722A000DDA7A /* Utility.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Utility.h; sourceTree = "<group>"; };
65797520172D722A000DDA7A /* Vector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Vector.h; sourceTree = "<group>"; };
65797521172D722A000DDA7A /* js-config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "js-config.h"; sourceTree = "<group>"; };
65797522172D722A000DDA7A /* js.msg */ = {isa = PBXFileReference; lastKnownFileType = text; path = js.msg; sourceTree = "<group>"; };
65797523172D722A000DDA7A /* jsalloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsalloc.h; sourceTree = "<group>"; };
65797524172D722A000DDA7A /* jsapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsapi.h; sourceTree = "<group>"; };
65797525172D722A000DDA7A /* jsclass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsclass.h; sourceTree = "<group>"; };
65797526172D722A000DDA7A /* jsclist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsclist.h; sourceTree = "<group>"; };
65797527172D722A000DDA7A /* jscpucfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jscpucfg.h; sourceTree = "<group>"; };
65797528172D722A000DDA7A /* jsdbgapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsdbgapi.h; sourceTree = "<group>"; };
65797529172D722A000DDA7A /* jsdhash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsdhash.h; sourceTree = "<group>"; };
6579752A172D722A000DDA7A /* jsfriendapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsfriendapi.h; sourceTree = "<group>"; };
6579752B172D722A000DDA7A /* jslock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jslock.h; sourceTree = "<group>"; };
6579752C172D722A000DDA7A /* json.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = json.h; sourceTree = "<group>"; };
6579752D172D722A000DDA7A /* jsperf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsperf.h; sourceTree = "<group>"; };
6579752E172D722A000DDA7A /* jsprf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsprf.h; sourceTree = "<group>"; };
6579752F172D722A000DDA7A /* jsprototypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsprototypes.h; sourceTree = "<group>"; };
65797530172D722A000DDA7A /* jsproxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsproxy.h; sourceTree = "<group>"; };
65797531172D722A000DDA7A /* jsprvtd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsprvtd.h; sourceTree = "<group>"; };
65797532172D722A000DDA7A /* jspubtd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jspubtd.h; sourceTree = "<group>"; };
65797533172D722A000DDA7A /* jstypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jstypes.h; sourceTree = "<group>"; };
65797534172D722A000DDA7A /* jsutil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsutil.h; sourceTree = "<group>"; };
65797535172D722A000DDA7A /* jsval.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsval.h; sourceTree = "<group>"; };
65797536172D722A000DDA7A /* jsversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jsversion.h; sourceTree = "<group>"; };
65797537172D722A000DDA7A /* jswrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = jswrapper.h; sourceTree = "<group>"; };
65797539172D722A000DDA7A /* Assertions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Assertions.h; sourceTree = "<group>"; };
6579753A172D722A000DDA7A /* Attributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Attributes.h; sourceTree = "<group>"; };
6579753B172D722A000DDA7A /* BloomFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BloomFilter.h; sourceTree = "<group>"; };
6579753C172D722A000DDA7A /* CheckedInt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CheckedInt.h; sourceTree = "<group>"; };
6579753D172D722A000DDA7A /* Constants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
6579753E172D722A000DDA7A /* EnumSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EnumSet.h; sourceTree = "<group>"; };
6579753F172D722A000DDA7A /* FloatingPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FloatingPoint.h; sourceTree = "<group>"; };
65797540172D722A000DDA7A /* GuardObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuardObjects.h; sourceTree = "<group>"; };
65797541172D722A000DDA7A /* HashFunctions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HashFunctions.h; sourceTree = "<group>"; };
65797542172D722A000DDA7A /* Likely.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Likely.h; sourceTree = "<group>"; };
65797543172D722A000DDA7A /* LinkedList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LinkedList.h; sourceTree = "<group>"; };
65797544172D722A000DDA7A /* MathAlgorithms.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MathAlgorithms.h; sourceTree = "<group>"; };
65797545172D722A000DDA7A /* MSStdInt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSStdInt.h; sourceTree = "<group>"; };
65797546172D722A000DDA7A /* NullPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NullPtr.h; sourceTree = "<group>"; };
65797547172D722A000DDA7A /* RangedPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RangedPtr.h; sourceTree = "<group>"; };
65797548172D722A000DDA7A /* RefPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RefPtr.h; sourceTree = "<group>"; };
65797549172D722A000DDA7A /* Scoped.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Scoped.h; sourceTree = "<group>"; };
6579754A172D722A000DDA7A /* SHA1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SHA1.h; sourceTree = "<group>"; };
6579754B172D722A000DDA7A /* StandardInteger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StandardInteger.h; sourceTree = "<group>"; };
6579754C172D722A000DDA7A /* ThreadLocal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThreadLocal.h; sourceTree = "<group>"; };
6579754D172D722A000DDA7A /* Types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Types.h; sourceTree = "<group>"; };
6579754E172D722A000DDA7A /* TypeTraits.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeTraits.h; sourceTree = "<group>"; };
6579754F172D722A000DDA7A /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = "<group>"; };
65797550172D722A000DDA7A /* WeakPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeakPtr.h; sourceTree = "<group>"; };
65797552172D722A000DDA7A /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libjs_static.a; sourceTree = "<group>"; };
65AE5C7B172E654500157241 /* jsbcc.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = jsbcc.sh; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
65797504172D6EBE000DDA7A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
65797553172D7244000DDA7A /* libjs_static.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
657974FE172D6EBD000DDA7A = {
isa = PBXGroup;
children = (
65797513172D722A000DDA7A /* spidermonkey-ios */,
65797509172D6EBE000DDA7A /* src */,
65797508172D6EBE000DDA7A /* Products */,
);
sourceTree = "<group>";
};
65797508172D6EBE000DDA7A /* Products */ = {
isa = PBXGroup;
children = (
65797507172D6EBE000DDA7A /* jsbcc */,
);
name = Products;
sourceTree = "<group>";
};
65797509172D6EBE000DDA7A /* src */ = {
isa = PBXGroup;
children = (
65AE5C7B172E654500157241 /* jsbcc.sh */,
6579750A172D6EBE000DDA7A /* main.cpp */,
);
path = src;
sourceTree = "<group>";
};
65797513172D722A000DDA7A /* spidermonkey-ios */ = {
isa = PBXGroup;
children = (
65797514172D722A000DDA7A /* include */,
65797551172D722A000DDA7A /* lib */,
);
name = "spidermonkey-ios";
path = "../../scripting/javascript/spidermonkey-ios";
sourceTree = "<group>";
};
65797514172D722A000DDA7A /* include */ = {
isa = PBXGroup;
children = (
65797515172D722A000DDA7A /* ds */,
65797517172D722A000DDA7A /* gc */,
65797519172D722A000DDA7A /* js */,
65797521172D722A000DDA7A /* js-config.h */,
65797522172D722A000DDA7A /* js.msg */,
65797523172D722A000DDA7A /* jsalloc.h */,
65797524172D722A000DDA7A /* jsapi.h */,
65797525172D722A000DDA7A /* jsclass.h */,
65797526172D722A000DDA7A /* jsclist.h */,
65797527172D722A000DDA7A /* jscpucfg.h */,
65797528172D722A000DDA7A /* jsdbgapi.h */,
65797529172D722A000DDA7A /* jsdhash.h */,
6579752A172D722A000DDA7A /* jsfriendapi.h */,
6579752B172D722A000DDA7A /* jslock.h */,
6579752C172D722A000DDA7A /* json.h */,
6579752D172D722A000DDA7A /* jsperf.h */,
6579752E172D722A000DDA7A /* jsprf.h */,
6579752F172D722A000DDA7A /* jsprototypes.h */,
65797530172D722A000DDA7A /* jsproxy.h */,
65797531172D722A000DDA7A /* jsprvtd.h */,
65797532172D722A000DDA7A /* jspubtd.h */,
65797533172D722A000DDA7A /* jstypes.h */,
65797534172D722A000DDA7A /* jsutil.h */,
65797535172D722A000DDA7A /* jsval.h */,
65797536172D722A000DDA7A /* jsversion.h */,
65797537172D722A000DDA7A /* jswrapper.h */,
65797538172D722A000DDA7A /* mozilla */,
);
path = include;
sourceTree = "<group>";
};
65797515172D722A000DDA7A /* ds */ = {
isa = PBXGroup;
children = (
65797516172D722A000DDA7A /* BitArray.h */,
);
path = ds;
sourceTree = "<group>";
};
65797517172D722A000DDA7A /* gc */ = {
isa = PBXGroup;
children = (
65797518172D722A000DDA7A /* Root.h */,
);
path = gc;
sourceTree = "<group>";
};
65797519172D722A000DDA7A /* js */ = {
isa = PBXGroup;
children = (
6579751A172D722A000DDA7A /* HashTable.h */,
6579751B172D722A000DDA7A /* HeapAPI.h */,
6579751C172D722A000DDA7A /* LegacyIntTypes.h */,
6579751D172D722A000DDA7A /* MemoryMetrics.h */,
6579751E172D722A000DDA7A /* TemplateLib.h */,
6579751F172D722A000DDA7A /* Utility.h */,
65797520172D722A000DDA7A /* Vector.h */,
);
path = js;
sourceTree = "<group>";
};
65797538172D722A000DDA7A /* mozilla */ = {
isa = PBXGroup;
children = (
65797539172D722A000DDA7A /* Assertions.h */,
6579753A172D722A000DDA7A /* Attributes.h */,
6579753B172D722A000DDA7A /* BloomFilter.h */,
6579753C172D722A000DDA7A /* CheckedInt.h */,
6579753D172D722A000DDA7A /* Constants.h */,
6579753E172D722A000DDA7A /* EnumSet.h */,
6579753F172D722A000DDA7A /* FloatingPoint.h */,
65797540172D722A000DDA7A /* GuardObjects.h */,
65797541172D722A000DDA7A /* HashFunctions.h */,
65797542172D722A000DDA7A /* Likely.h */,
65797543172D722A000DDA7A /* LinkedList.h */,
65797544172D722A000DDA7A /* MathAlgorithms.h */,
65797545172D722A000DDA7A /* MSStdInt.h */,
65797546172D722A000DDA7A /* NullPtr.h */,
65797547172D722A000DDA7A /* RangedPtr.h */,
65797548172D722A000DDA7A /* RefPtr.h */,
65797549172D722A000DDA7A /* Scoped.h */,
6579754A172D722A000DDA7A /* SHA1.h */,
6579754B172D722A000DDA7A /* StandardInteger.h */,
6579754C172D722A000DDA7A /* ThreadLocal.h */,
6579754D172D722A000DDA7A /* Types.h */,
6579754E172D722A000DDA7A /* TypeTraits.h */,
6579754F172D722A000DDA7A /* Util.h */,
65797550172D722A000DDA7A /* WeakPtr.h */,
);
path = mozilla;
sourceTree = "<group>";
};
65797551172D722A000DDA7A /* lib */ = {
isa = PBXGroup;
children = (
65797552172D722A000DDA7A /* libjs_static.a */,
);
path = lib;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
65797506172D6EBE000DDA7A /* jsbcc */ = {
isa = PBXNativeTarget;
buildConfigurationList = 65797510172D6EBE000DDA7A /* Build configuration list for PBXNativeTarget "jsbcc" */;
buildPhases = (
65797503172D6EBE000DDA7A /* Sources */,
65797504172D6EBE000DDA7A /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = jsbcc;
productName = jsbcc;
productReference = 65797507172D6EBE000DDA7A /* jsbcc */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
657974FF172D6EBD000DDA7A /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0460;
ORGANIZATIONNAME = sunzhuoshi;
};
buildConfigurationList = 65797502172D6EBD000DDA7A /* Build configuration list for PBXProject "jsbcc" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 657974FE172D6EBD000DDA7A;
productRefGroup = 65797508172D6EBE000DDA7A /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
65797506172D6EBE000DDA7A /* jsbcc */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
65797503172D6EBE000DDA7A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6579750B172D6EBE000DDA7A /* main.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
6579750E172D6EBE000DDA7A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
6579750F172D6EBE000DDA7A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.7;
SDKROOT = macosx;
};
name = Release;
};
65797511172D6EBE000DDA7A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
HEADER_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../scripting/javascript/spidermonkey-ios/lib\"",
);
OTHER_LDFLAGS = "-lz";
PRODUCT_NAME = "$(TARGET_NAME)";
USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../scripting/javascript/spidermonkey-ios/include\"";
};
name = Debug;
};
65797512172D6EBE000DDA7A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
HEADER_SEARCH_PATHS = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../scripting/javascript/spidermonkey-ios/lib\"",
);
OTHER_LDFLAGS = "-lz";
PRODUCT_NAME = "$(TARGET_NAME)";
USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../scripting/javascript/spidermonkey-ios/include\"";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
65797502172D6EBD000DDA7A /* Build configuration list for PBXProject "jsbcc" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6579750E172D6EBE000DDA7A /* Debug */,
6579750F172D6EBE000DDA7A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
65797510172D6EBE000DDA7A /* Build configuration list for PBXNativeTarget "jsbcc" */ = {
isa = XCConfigurationList;
buildConfigurations = (
65797511172D6EBE000DDA7A /* Debug */,
65797512172D6EBE000DDA7A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 657974FF172D6EBD000DDA7A /* Project object */;
}

View File

@ -1 +0,0 @@
for /f %%f in ('dir %1\*.js /s/b') do jsbcc.exe %%f

View File

@ -1,46 +0,0 @@
#/bin/bash
USAGE="Usage: $0 dir"
sh_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
old_pwd=$PWD
if [ $# -lt 1 ]
then
echo $USAGE
exit 1
fi
if [ ! -d $1 ]
then
echo "Invalid directory: $1"
exit 1
fi
script_dir=$1
ok_count=0
error_count=0
# check shell directory first
cmd="$sh_dir/jsbcc"
if [ ! -f $cmd ]
then
# not found in shell directory, check global
type "jsbcc"
if [ 0 -eq $? ]
then
cmd="jsbcc"
else
echo "jsbcc execuable NOT found"
exit 1
fi
fi
cd $script_dir
for file in *.js
do
[ -f "$file" ] || continue
$cmd $file
ret=$?
if [ "$ret" == 0 ]
then
ok_count=`expr $ok_count + 1`
else
error_count=`expr $error_count + 1`
fi
done
cd $old_pwd
echo "$ok_count file(s) compiled, $error_count file(s) failed"

View File

@ -1,165 +0,0 @@
//
// main.cpp
// jsbcc
//
// Created by sun zhuoshi on 4/28/13.
// Copyright (c) 2013 sunzhuoshi. All rights reserved.
//
#include <iostream>
#include <sstream>
#include <stdio.h>
#ifdef WIN32
#include <Winsock2.h>
#define STDIN_FILENO 0
#else
#include <unistd.h>
#include <sys/select.h>
#endif
#include "jsapi.h"
#ifdef WIN32
const char *USAGE = "Usage: jsbcc input_js_file [byte_code_file]";
#else
const char *USAGE = "Usage: jsbcc input_js_file [byte_code_file]\n"\
" Or\n"\
" ls *.js | jsbcc -p";
#endif
const char *BYTE_CODE_FILE_EXT = ".jsc";
enum ErrorCode {
EC_OK = 0,
EC_ERROR = 1
};
void Finalize(JSFreeOp *freeOp, JSObject *obj) {
}
void ReportError(JSContext *cx, const char *message, JSErrorReport *report) {
std::cerr << "Error! " << message << std::endl;
}
JSClass GlobalClass = {
"global", JSCLASS_GLOBAL_FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, Finalize,
JSCLASS_NO_OPTIONAL_MEMBERS
};
bool WriteFile(const std::string &filePath, void *data, uint32_t length) {
FILE *file = fopen(filePath.c_str(), "wb");
if (file) {
size_t ret = fwrite(data, 1, length, file);
fclose(file);
if (ret == length) {
return true;
}
}
return false;
}
std::string RemoveFileExt(const std::string &filePath) {
size_t pos = filePath.rfind('.');
if (0 < pos) {
return filePath.substr(0, pos);
}
else {
return filePath;
}
}
bool CompileFile(const std::string &inputFilePath, const std::string &outputFilePath) {
bool result = false;
std::string ofp;
if (!outputFilePath.empty()) {
ofp = outputFilePath;
}
else {
ofp = RemoveFileExt(inputFilePath) + BYTE_CODE_FILE_EXT;
}
std::cout << "Input file: " << inputFilePath << std::endl;
JSRuntime * runtime = JS_NewRuntime(10 * 1024 * 1024, JS_NO_HELPER_THREADS);
JSContext *context = JS_NewContext(runtime, 10240);
JS_SetOptions(context, JSOPTION_TYPE_INFERENCE);
JS_SetVersion(context, JSVERSION_LATEST);
JS_SetOptions(context, JS_GetOptions(context) & ~JSOPTION_METHODJIT);
JS_SetOptions(context, JS_GetOptions(context) & ~JSOPTION_METHODJIT_ALWAYS);
JSObject* global = JS_NewGlobalObject(context, &GlobalClass, NULL);
JS_SetErrorReporter(context, &ReportError);
if (JS_InitStandardClasses(context, global)) {
JS::CompileOptions options(context);
options.setUTF8(true);
options.setSourcePolicy(JS::CompileOptions::NO_SOURCE);
js::RootedObject rootedObject(context, global);
std::cout << "Compiling ..." << std::endl;
JSScript *script = JS::Compile(context, rootedObject, options, inputFilePath.c_str());
if (script) {
void *data = NULL;
uint32_t length = 0;
std::cout << "Encoding ..." << std::endl;
data = JS_EncodeScript(context, script, &length);
if (data) {
if (WriteFile(ofp, data, length)) {
std::cout << "Done! " << "Output file: " << ofp << std::endl;
result = true;
}
}
}
}
if (context) {
JS_DestroyContext(context);
context = NULL;
}
if (runtime) {
JS_DestroyRuntime(runtime);
runtime = NULL;
}
return result;
}
int main(int argc, const char * argv[])
{
std::string inputFilePath, outputFilePath;
if (1 == argc) {
std::cerr << USAGE << std::endl;
return EC_ERROR;
}
else {
if (1 < argc) {
if (std::string(argv[1]) == "-p") { // pipe mode
fd_set fds;
FD_ZERO (&fds);
FD_SET (STDIN_FILENO, &fds);
int result = select (STDIN_FILENO + 1, &fds, NULL, NULL, NULL); // infinite wait
if (result) { // STDIN ready to read
std::string line;
while (std::getline(std::cin, line)) {
if (!line.empty()) {
CompileFile(line, "");
}
}
return EC_OK;
}
else {
std::cerr << "Failed to read from pipe" << std::endl;
return EC_ERROR;
}
}
else {
inputFilePath = argv[1];
}
}
if (2 < argc) {
outputFilePath = argv[2];
}
if (CompileFile(inputFilePath, outputFilePath)) {
return EC_OK;
}
return EC_ERROR;
}
}