 		return result
 	}
 
-	public func saveToFile(_ val: JSValue) -> JSValue {
-		let url: URL
+	public func save(_ val: JSValue) -> JSValue {
+		guard let url = valueToURL(value: val) else {
+			return JSValue(bool: false, in: mContext)
+		}
+		if let _ = mApplication.save(fileURL: url) {
+			/* Some errors */
+			return JSValue(bool: false, in: mContext)
+		} else {
+			/* No error */
+			return JSValue(bool: true, in: mContext)
+		}
+	}
+
+	private func valueToURL(value val: JSValue) -> URL? {
+		let url: URL?
 		if val.isURL {
 			url = val.toURL()
 		} else if val.isString {
 			url = URL(fileURLWithPath: val.toString())
 		} else {
-			return JSValue(bool: false, in: mContext)
-		}
-		if let _ = mApplication.saveToFile(fileURL: url) {
-			/* Some errors */
-			return JSValue(bool: false, in: mContext)
-		} else {
-			/* No error */
-			return JSValue(bool: true, in: mContext)
-		}
+			url = nil
+		}
+		return url
 	}
 }
 

	func terminate()
	func activate() -> JSValue
	func makeNewDocument() -> JSValue
	func setNameOfFrontWindow(_ val: JSValue) -> JSValue
	func nameOfFrontWindow() -> JSValue
	func setContentOfFrontWindow(_ val: JSValue) -> JSValue
	func contentOfFrontWindow() -> JSValue
	func saveToFile(_ val: JSValue) -> JSValue
}

@objc public class KLApplication: NSObject, KLApplicationProtocol

			result = true  // no error
		}
		return JSValue(bool: result, in: mContext)
	}

	public func open(_ val: JSValue) -> JSValue {
		guard let url = valueToURL(value: val) else {
			return JSValue(bool: false, in: mContext)
		}
		if let _ = mApplication.open(fileURL: url) {
			/* Some errors */
			return JSValue(bool: false, in: mContext)
		} else {
			/* No error */
			return JSValue(bool: true, in: mContext)
		}
	}

	public func setNameOfFrontWindow(_ val: JSValue) -> JSValue {
