// !$*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 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.plist.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 = (
				F11798B20262465703CA149D /* JavaScriptGlue.cpp */,
				F1EB7EAB02621EAF03CA149D /* JavaScriptGlue.exp */,
				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 = (
				F14FC9F30258E9A603CA149D /* CoreServices.framework */,
				DD66F3F508F7401B00C75FD7 /* JavaScriptCore.framework */,
			);
			name = "Linked Frameworks";
			sourceTree = "<group>";
		};
		1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				0867D6A5FE840307C02AAC07 /* AppKit.framework */,
				0867D69BFE84028FC02AAC07 /* Foundation.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 = (
				DD66F3BB08F73ED700C75FD7 /* JavaScriptGlue.h in Headers */,
				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 */,
				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 = (
			);
			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 */,
				DD66F3CD08F73ED700C75FD7 /* Frameworks */,
				939D055E09DA033400984996 /* Check For Global Initializers */,
				5D0D53490E9862A70029E223 /* Check For Weak VTables and Externals */,
				5DA0F0C00DC2B48900EA22B4 /* Remove Headers If Needed */,
			);
			buildRules = (
			);
			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";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			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 */
		5D0D53490E9862A70029E223 /* Check For Weak VTables and Externals */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)",
			);
			name = "Check For Weak VTables and Externals";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "if [ -f ../../Tools/Scripts/check-for-weak-vtables-and-externals ]; then\n    ../../Tools/Scripts/check-for-weak-vtables-and-externals || exit $?\nfi";
		};
		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\nif [[ \"${CONFIGURATION}\" != \"Production\" ]]; then\n    touch \"$SRCROOT/Info.plist\";\nfi;\n";
		};
		5DA0F0C00DC2B48900EA22B4 /* Remove Headers If Needed */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Remove Headers If Needed";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "if (( TARGET_MAC_OS_X_VERSION_MAJOR > 1050 )); then\n   rm -rf \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"/*.h;\nfi;\n";
		};
		939D055E09DA033400984996 /* Check For Global Initializers */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)",
			);
			name = "Check For Global Initializers";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "if [ -f ../../Tools/Scripts/check-for-global-initializers ]; then\n    ../../Tools/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 = (
				DD66F3C608F73ED700C75FD7 /* JavaScriptGlue.cpp in Sources */,
				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 */,
				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 = {
				DEBUG_DEFINES = "$(DEBUG_DEFINES_debug)";
				GCC_OPTIMIZATION_LEVEL = "$(GCC_OPTIMIZATION_LEVEL_debug)";
				STRIP_INSTALLED_PRODUCT = "$(STRIP_INSTALLED_PRODUCT_debug)";
			};
			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 = {
				INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
			};
			name = Debug;
		};
		DD66F3D308F73ED700C75FD7 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */;
			buildSettings = {
				INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
			};
			name = Release;
		};
		DD66F3D408F73ED700C75FD7 /* Production */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 1C9051A10BA9F3050081E9D0 /* JavaScriptGlue.xcconfig */;
			buildSettings = {
				BUILD_VARIANTS = normal;
				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 */;
}
