// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 42;
	objects = {

/* Begin PBXAggregateTarget section */
		1422E8C409DE3EA600749B87 /* All */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = 1422E8DD09DE3EF500749B87 /* Build configuration list for PBXAggregateTarget "All" */;
			buildPhases = (
			);
			dependencies = (
				1422E8CA09DE3EB100749B87 /* PBXTargetDependency */,
				1422E8C809DE3EAD00749B87 /* PBXTargetDependency */,
			);
			name = All;
			productName = All;
		};
/* End PBXAggregateTarget section */

/* Begin PBXBuildFile section */
		1422E87B09DE3BF000749B87 /* testjsglue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1422E86709DE3BCE00749B87 /* testjsglue.cpp */; };
		1422E88209DE3C0400749B87 /* JavaScriptGlue.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD66F3D608F73ED700C75FD7 /* JavaScriptGlue.framework */; };
		DD66F3BB08F73ED700C75FD7 /* JavaScriptGlue.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798B30262465703CA149D /* JavaScriptGlue.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DD66F3BC08F73ED700C75FD7 /* JSBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798B9026246FD03CA149D /* JSBase.h */; };
		DD66F3BD08F73ED700C75FD7 /* JSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798B7026246FD03CA149D /* JSUtils.h */; };
		DD66F3BE08F73ED700C75FD7 /* JSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798BB026246FD03CA149D /* JSObject.h */; };
		DD66F3BF08F73ED700C75FD7 /* JSRun.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798BD026246FD03CA149D /* JSRun.h */; };
		DD66F3C008F73ED700C75FD7 /* JSValueWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798C90262545403CA149D /* JSValueWrapper.h */; };
		DD66F3C108F73ED700C75FD7 /* UserObjectImp.h in Headers */ = {isa = PBXBuildFile; fileRef = F11798CF0262579C03CA149D /* UserObjectImp.h */; };
		DD66F3C308F73ED700C75FD7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
		DD66F3C608F73ED700C75FD7 /* JavaScriptGlue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798B20262465703CA149D /* JavaScriptGlue.cpp */; };
		DD66F3C708F73ED700C75FD7 /* JSRun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798BC026246FD03CA149D /* JSRun.cpp */; };
		DD66F3C808F73ED700C75FD7 /* JSUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798B6026246FD03CA149D /* JSUtils.cpp */; };
		DD66F3C908F73ED700C75FD7 /* JSBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798B8026246FD03CA149D /* JSBase.cpp */; };
		DD66F3CA08F73ED700C75FD7 /* JSObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798BA026246FD03CA149D /* JSObject.cpp */; };
		DD66F3CB08F73ED700C75FD7 /* JSValueWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798C80262545403CA149D /* JSValueWrapper.cpp */; };
		DD66F3CC08F73ED700C75FD7 /* UserObjectImp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F11798CE0262579C03CA149D /* UserObjectImp.cpp */; };
		DD66F3CE08F73ED700C75FD7 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F14FC9F30258E9A603CA149D /* CoreServices.framework */; };
		DD66F3F608F7401B00C75FD7 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD66F3F508F7401B00C75FD7 /* JavaScriptCore.framework */; };
/* End PBXBuildFile section */

/* Begin PBXBuildRule section */
		1C8715620B0BA46200E3CB7B /* PBXBuildRule */ = {
			isa = PBXBuildRule;
			compilerSpec = com.apple.compilers.gcc.4_0;
			fileType = sourcecode.cpp;
			isEditable = 1;
			outputFiles = (
			);
		};
		1C8715630B0BA46200E3CB7B /* PBXBuildRule */ = {
			isa = PBXBuildRule;
			compilerSpec = com.apple.compilers.gcc.4_0;
			fileType = sourcecode.c;
			isEditable = 1;
			outputFiles = (
			);
		};
		5D89690E0BB521EE009477BE /* PBXBuildRule */ = {
			isa = PBXBuildRule;
			compilerSpec = com.apple.compilers.gcc.4_0;
			fileType = sourcecode.c;
			isEditable = 1;
			outputFiles = (
			);
		};
		5D8969150BB52209009477BE /* PBXBuildRule */ = {
			isa = PBXBuildRule;
			compilerSpec = com.apple.compilers.gcc.4_0;
			fileType = sourcecode.cpp;
			isEditable = 1;
			outputFiles = (
			);
		};
/* End PBXBuildRule section */

/* Begin PBXContainerItemProxy section */
		1422E8C709DE3EAD00749B87 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 1422E87609DE3BE800749B87;
			remoteInfo = testjsglue;
		};
		1422E8C909DE3EB100749B87 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = DD66F3B908F73ED700C75FD7;
			remoteInfo = JavaScriptGlue;
		};
		5D2F21E20BDFAB9D0082B294 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = DD66F3B908F73ED700C75FD7;
			remoteInfo = JavaScriptGlue;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
		0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
		089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; indentWidth = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		1422E86709DE3BCE00749B87 /* testjsglue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = testjsglue.cpp; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
		1422E87709DE3BE800749B87 /* testjsglue */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testjsglue; sourceTree = BUILT_PRODUCTS_DIR; };
		1C90519F0BA9F3050081E9D0 /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
		1C9051A00BA9F3050081E9D0 /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
		1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = JavaScriptGlue.xcconfig; sourceTree = "<group>"; };
		1C9051A20BA9F3050081E9D0 /* Version.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = "<group>"; };
		DD66F3D508F73ED700C75FD7 /* Info.plist */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		DD66F3D608F73ED700C75FD7 /* JavaScriptGlue.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JavaScriptGlue.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		DD66F3F508F7401B00C75FD7 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		F11798B20262465703CA149D /* JavaScriptGlue.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JavaScriptGlue.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798B30262465703CA149D /* JavaScriptGlue.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JavaScriptGlue.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798B6026246FD03CA149D /* JSUtils.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSUtils.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798B7026246FD03CA149D /* JSUtils.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JSUtils.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798B8026246FD03CA149D /* JSBase.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSBase.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798B9026246FD03CA149D /* JSBase.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JSBase.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798BA026246FD03CA149D /* JSObject.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSObject.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798BB026246FD03CA149D /* JSObject.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JSObject.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798BC026246FD03CA149D /* JSRun.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRun.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798BD026246FD03CA149D /* JSRun.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JSRun.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798C80262545403CA149D /* JSValueWrapper.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSValueWrapper.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798C90262545403CA149D /* JSValueWrapper.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JSValueWrapper.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798CE0262579C03CA149D /* UserObjectImp.cpp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserObjectImp.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F11798CF0262579C03CA149D /* UserObjectImp.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = UserObjectImp.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
		F14FC9F30258E9A603CA149D /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
		F1EB7EAB02621EAF03CA149D /* JavaScriptGlue.exp */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.exports; path = JavaScriptGlue.exp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1422E87509DE3BE800749B87 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1422E88209DE3C0400749B87 /* JavaScriptGlue.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD66F3CD08F73ED700C75FD7 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD66F3CE08F73ED700C75FD7 /* CoreServices.framework in Frameworks */,
				DD66F3F608F7401B00C75FD7 /* JavaScriptCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		034768DFFF38A50411DB9C8B /* Products */ = {
			isa = PBXGroup;
			children = (
				DD66F3D608F73ED700C75FD7 /* JavaScriptGlue.framework */,
				1422E87709DE3BE800749B87 /* testjsglue */,
			);
			name = Products;
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
		0867D691FE84028FC02AAC07 /* JavaScriptGlue */ = {
			isa = PBXGroup;
			children = (
				1422E86709DE3BCE00749B87 /* testjsglue.cpp */,
				08FB77AEFE84172EC02AAC07 /* Classes */,
				089C1665FE841158C02AAC07 /* Resources */,
				0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
				034768DFFF38A50411DB9C8B /* Products */,
				1C90519E0BA9F3050081E9D0 /* Configurations */,
				DD66F3D508F73ED700C75FD7 /* Info.plist */,
			);
			name = JavaScriptGlue;
			sourceTree = "<group>";
		};
		0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
				1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
		089C1665FE841158C02AAC07 /* Resources */ = {
			isa = PBXGroup;
			children = (
				089C1666FE841158C02AAC07 /* InfoPlist.strings */,
			);
			name = Resources;
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
		08FB77AEFE84172EC02AAC07 /* Classes */ = {
			isa = PBXGroup;
			children = (
				F1EB7EAB02621EAF03CA149D /* JavaScriptGlue.exp */,
				F11798B20262465703CA149D /* JavaScriptGlue.cpp */,
				F11798B30262465703CA149D /* JavaScriptGlue.h */,
				F11798B8026246FD03CA149D /* JSBase.cpp */,
				F11798B9026246FD03CA149D /* JSBase.h */,
				F11798BA026246FD03CA149D /* JSObject.cpp */,
				F11798BB026246FD03CA149D /* JSObject.h */,
				F11798BC026246FD03CA149D /* JSRun.cpp */,
				F11798BD026246FD03CA149D /* JSRun.h */,
				F11798B6026246FD03CA149D /* JSUtils.cpp */,
				F11798B7026246FD03CA149D /* JSUtils.h */,
				F11798C80262545403CA149D /* JSValueWrapper.cpp */,
				F11798C90262545403CA149D /* JSValueWrapper.h */,
				F11798CE0262579C03CA149D /* UserObjectImp.cpp */,
				F11798CF0262579C03CA149D /* UserObjectImp.h */,
			);
			name = Classes;
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
		1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
			isa = PBXGroup;
			children = (
				DD66F3F508F7401B00C75FD7 /* JavaScriptCore.framework */,
				F14FC9F30258E9A603CA149D /* CoreServices.framework */,
			);
			name = "Linked Frameworks";
			sourceTree = "<group>";
		};
		1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				0867D69BFE84028FC02AAC07 /* Foundation.framework */,
				0867D6A5FE840307C02AAC07 /* AppKit.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		1C90519E0BA9F3050081E9D0 /* Configurations */ = {
			isa = PBXGroup;
			children = (
				1C90519F0BA9F3050081E9D0 /* Base.xcconfig */,
				1C9051A00BA9F3050081E9D0 /* DebugRelease.xcconfig */,
				1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */,
				1C9051A20BA9F3050081E9D0 /* Version.xcconfig */,
			);
			path = Configurations;
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		DD66F3BA08F73ED700C75FD7 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD66F3BC08F73ED700C75FD7 /* JSBase.h in Headers */,
				DD66F3BE08F73ED700C75FD7 /* JSObject.h in Headers */,
				DD66F3BF08F73ED700C75FD7 /* JSRun.h in Headers */,
				DD66F3BD08F73ED700C75FD7 /* JSUtils.h in Headers */,
				DD66F3C008F73ED700C75FD7 /* JSValueWrapper.h in Headers */,
				DD66F3BB08F73ED700C75FD7 /* JavaScriptGlue.h in Headers */,
				DD66F3C108F73ED700C75FD7 /* UserObjectImp.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		1422E87609DE3BE800749B87 /* testjsglue */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1422E88609DE3C2200749B87 /* Build configuration list for PBXNativeTarget "testjsglue" */;
			buildPhases = (
				1422E87409DE3BE800749B87 /* Sources */,
				1422E87509DE3BE800749B87 /* Frameworks */,
			);
			buildRules = (
				5D8969150BB52209009477BE /* PBXBuildRule */,
				5D89690E0BB521EE009477BE /* PBXBuildRule */,
			);
			dependencies = (
				5D2F21E30BDFAB9D0082B294 /* PBXTargetDependency */,
			);
			name = testjsglue;
			productName = testjsglue;
			productReference = 1422E87709DE3BE800749B87 /* testjsglue */;
			productType = "com.apple.product-type.tool";
		};
		DD66F3B908F73ED700C75FD7 /* JavaScriptGlue */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DD66F3D108F73ED700C75FD7 /* Build configuration list for PBXNativeTarget "JavaScriptGlue" */;
			buildPhases = (
				5D2F7D0A0C6878E000B5B72B /* Update Info.plist with version information */,
				DD66F3BA08F73ED700C75FD7 /* Headers */,
				DD66F3C208F73ED700C75FD7 /* Resources */,
				DD66F3C408F73ED700C75FD7 /* Sources */,
				939D055E09DA033400984996 /* Check For Global Initializers */,
				DD66F3CD08F73ED700C75FD7 /* Frameworks */,
			);
			buildRules = (
				1C8715620B0BA46200E3CB7B /* PBXBuildRule */,
				1C8715630B0BA46200E3CB7B /* PBXBuildRule */,
			);
			dependencies = (
			);
			name = JavaScriptGlue;
			productInstallPath = "$(NEXT_ROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks";
			productName = JavaScriptGlue;
			productReference = DD66F3D608F73ED700C75FD7 /* JavaScriptGlue.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		0867D690FE84028FC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 14AC662B08CE7791006915A8 /* Build configuration list for PBXProject "JavaScriptGlue" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 0867D691FE84028FC02AAC07 /* JavaScriptGlue */;
			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				1422E8C409DE3EA600749B87 /* All */,
				DD66F3B908F73ED700C75FD7 /* JavaScriptGlue */,
				1422E87609DE3BE800749B87 /* testjsglue */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DD66F3C208F73ED700C75FD7 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD66F3C308F73ED700C75FD7 /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		5D2F7D0A0C6878E000B5B72B /* Update Info.plist with version information */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"$(SRCROOT)/Configurations/Version.xcconfig",
			);
			name = "Update Info.plist with version information";
			outputPaths = (
				"$(SRCROOT)/Info.plist",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "# Touch Info.plist to let Xcode know it needs to copy it into the built product\ntouch \"$SRCROOT/Info.plist\"\n";
		};
		939D055E09DA033400984996 /* Check For Global Initializers */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Check For Global Initializers";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "if [ -f ../WebKitTools/Scripts/check-for-global-initializers ]; then\n    ../WebKitTools/Scripts/check-for-global-initializers || exit $?\nfi";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1422E87409DE3BE800749B87 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1422E87B09DE3BF000749B87 /* testjsglue.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD66F3C408F73ED700C75FD7 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD66F3C908F73ED700C75FD7 /* JSBase.cpp in Sources */,
				DD66F3CA08F73ED700C75FD7 /* JSObject.cpp in Sources */,
				DD66F3C708F73ED700C75FD7 /* JSRun.cpp in Sources */,
				DD66F3C808F73ED700C75FD7 /* JSUtils.cpp in Sources */,
				DD66F3CB08F73ED700C75FD7 /* JSValueWrapper.cpp in Sources */,
				DD66F3C608F73ED700C75FD7 /* JavaScriptGlue.cpp in Sources */,
				DD66F3CC08F73ED700C75FD7 /* UserObjectImp.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		1422E8C809DE3EAD00749B87 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 1422E87609DE3BE800749B87 /* testjsglue */;
			targetProxy = 1422E8C709DE3EAD00749B87 /* PBXContainerItemProxy */;
		};
		1422E8CA09DE3EB100749B87 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = DD66F3B908F73ED700C75FD7 /* JavaScriptGlue */;
			targetProxy = 1422E8C909DE3EB100749B87 /* PBXContainerItemProxy */;
		};
		5D2F21E30BDFAB9D0082B294 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = DD66F3B908F73ED700C75FD7 /* JavaScriptGlue */;
			targetProxy = 5D2F21E20BDFAB9D0082B294 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				089C1667FE841158C02AAC07 /* English */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		1422E88709DE3C2200749B87 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				OTHER_CFLAGS = "-Wno-deprecated-declarations";
				OTHER_LDFLAGS = (
					"-framework",
					CoreFoundation,
				);
				PRODUCT_NAME = testjsglue;
			};
			name = Debug;
		};
		1422E88809DE3C2200749B87 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				OTHER_CFLAGS = "-Wno-deprecated-declarations";
				OTHER_LDFLAGS = (
					"-framework",
					CoreFoundation,
				);
				PRODUCT_NAME = testjsglue;
			};
			name = Release;
		};
		1422E88909DE3C2200749B87 /* Production */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				OTHER_CFLAGS = "-Wno-deprecated-declarations";
				OTHER_LDFLAGS = (
					"-framework",
					CoreFoundation,
				);
				PRODUCT_NAME = testjsglue;
			};
			name = Production;
		};
		1422E8DE09DE3EF500749B87 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				PRODUCT_NAME = All;
			};
			name = Debug;
		};
		1422E8DF09DE3EF500749B87 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = YES;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				PRODUCT_NAME = All;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		1422E8E009DE3EF500749B87 /* Production */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = All;
			};
			name = Production;
		};
		14AC662C08CE7791006915A8 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A00BA9F3050081E9D0 /* DebugRelease.xcconfig */;
			buildSettings = {
				GCC_OPTIMIZATION_LEVEL = 0;
				STRIP_INSTALLED_PRODUCT = NO;
			};
			name = Debug;
		};
		14AC662D08CE7791006915A8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A00BA9F3050081E9D0 /* DebugRelease.xcconfig */;
			buildSettings = {
				STRIP_INSTALLED_PRODUCT = NO;
			};
			name = Release;
		};
		14AC662E08CE7791006915A8 /* Production */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C90519F0BA9F3050081E9D0 /* Base.xcconfig */;
			buildSettings = {
			};
			name = Production;
		};
		DD66F3D208F73ED700C75FD7 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */;
			buildSettings = {
				DEBUG_DEFINES = "";
				INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
			};
			name = Debug;
		};
		DD66F3D308F73ED700C75FD7 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */;
			buildSettings = {
				DEBUG_DEFINES = NDEBUG;
				INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
			};
			name = Release;
		};
		DD66F3D408F73ED700C75FD7 /* Production */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */;
			buildSettings = {
				DEBUG_DEFINES = NDEBUG;
				SECTORDER_FLAGS = (
					"-sectorder",
					__TEXT,
					__text,
					"$(APPLE_INTERNAL_DIR)/OrderFiles/JavaScriptGlue.order",
				);
			};
			name = Production;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1422E88609DE3C2200749B87 /* Build configuration list for PBXNativeTarget "testjsglue" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1422E88709DE3C2200749B87 /* Debug */,
				1422E88809DE3C2200749B87 /* Release */,
				1422E88909DE3C2200749B87 /* Production */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Production;
		};
		1422E8DD09DE3EF500749B87 /* Build configuration list for PBXAggregateTarget "All" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1422E8DE09DE3EF500749B87 /* Debug */,
				1422E8DF09DE3EF500749B87 /* Release */,
				1422E8E009DE3EF500749B87 /* Production */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Production;
		};
		14AC662B08CE7791006915A8 /* Build configuration list for PBXProject "JavaScriptGlue" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				14AC662C08CE7791006915A8 /* Debug */,
				14AC662D08CE7791006915A8 /* Release */,
				14AC662E08CE7791006915A8 /* Production */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Production;
		};
		DD66F3D108F73ED700C75FD7 /* Build configuration list for PBXNativeTarget "JavaScriptGlue" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DD66F3D208F73ED700C75FD7 /* Debug */,
				DD66F3D308F73ED700C75FD7 /* Release */,
				DD66F3D408F73ED700C75FD7 /* Production */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Production;
		};
/* End XCConfigurationList section */
	};
	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}
