// !$*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 = (
				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 = (
			);
			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 */,
				5D0D53490E9862A70029E223 /* Check For Weak VTables */,
				DD66F3CD08F73ED700C75FD7 /* Frameworks */,
				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";
			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 */
		5D0D53490E9862A70029E223 /* Check For Weak VTables */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Check For Weak VTables";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "if [ -f ../WebKitTools/Scripts/check-for-weak-vtables ]; then\n    ../WebKitTools/Scripts/check-for-weak-vtables || 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\ntouch \"$SRCROOT/Info.plist\"\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 (( 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 = (
			);
			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 = {
				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,
					debug,
				);
				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 */;
}
