Skip to content

Commit d15bcbf

Browse files
committedJun 27, 2020
Use enum_extensibility(closed)
1 parent 6b748d2 commit d15bcbf

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed
 

Diff for: ‎Sources/JavaScriptKit/JSValueConvertible.swift

+15-15
Original file line numberDiff line numberDiff line change
@@ -96,27 +96,27 @@ extension Array: JSValueConvertible where Element == JSValueConvertible {
9696
extension RawJSValue: JSValueConvertible {
9797
public func jsValue() -> JSValue {
9898
switch kind {
99-
case JavaScriptValueKind_Invalid:
99+
case .invalid:
100100
fatalError()
101-
case JavaScriptValueKind_Boolean:
101+
case .boolean:
102102
return .boolean(payload1 != 0)
103-
case JavaScriptValueKind_Number:
103+
case .number:
104104
return .number(payload3)
105-
case JavaScriptValueKind_String:
105+
case .string:
106106
// +1 for null terminator
107107
let buffer = malloc(Int(payload2 + 1))!.assumingMemoryBound(to: UInt8.self)
108108
defer { free(buffer) }
109109
_load_string(JavaScriptObjectRef(payload1), buffer)
110110
buffer[Int(payload2)] = 0
111111
let string = String(decodingCString: UnsafePointer(buffer), as: UTF8.self)
112112
return .string(string)
113-
case JavaScriptValueKind_Object:
113+
case .object:
114114
return .object(JSObjectRef(id: UInt32(payload1)))
115-
case JavaScriptValueKind_Null:
115+
case .null:
116116
return .null
117-
case JavaScriptValueKind_Undefined:
117+
case .undefined:
118118
return .undefined
119-
case JavaScriptValueKind_Function:
119+
case .function:
120120
return .function(JSFunctionRef(id: UInt32(payload1)))
121121
default:
122122
fatalError("unreachable")
@@ -132,35 +132,35 @@ extension JSValue {
132132
var payload3: JavaScriptPayload3 = 0
133133
switch self {
134134
case let .boolean(boolValue):
135-
kind = JavaScriptValueKind_Boolean
135+
kind = .boolean
136136
payload1 = boolValue ? 1 : 0
137137
payload2 = 0
138138
case let .number(numberValue):
139-
kind = JavaScriptValueKind_Number
139+
kind = .number
140140
payload1 = 0
141141
payload2 = 0
142142
payload3 = numberValue
143143
case var .string(stringValue):
144-
kind = JavaScriptValueKind_String
144+
kind = .string
145145
return stringValue.withUTF8 { bufferPtr in
146146
let ptrValue = UInt32(UInt(bitPattern: bufferPtr.baseAddress!))
147147
let rawValue = RawJSValue(kind: kind, payload1: JavaScriptPayload1(ptrValue), payload2: JavaScriptPayload2(bufferPtr.count), payload3: 0)
148148
return body(rawValue)
149149
}
150150
case let .object(ref):
151-
kind = JavaScriptValueKind_Object
151+
kind = .object
152152
payload1 = JavaScriptPayload1(ref.id)
153153
payload2 = 0
154154
case .null:
155-
kind = JavaScriptValueKind_Null
155+
kind = .null
156156
payload1 = 0
157157
payload2 = 0
158158
case .undefined:
159-
kind = JavaScriptValueKind_Undefined
159+
kind = .undefined
160160
payload1 = 0
161161
payload2 = 0
162162
case let .function(functionRef):
163-
kind = JavaScriptValueKind_Function
163+
kind = .function
164164
payload1 = JavaScriptPayload1(functionRef.id)
165165
payload2 = 0
166166
}

Diff for: ‎Sources/_CJavaScriptKit/include/_CJavaScriptKit.h

+9-9
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
typedef unsigned int JavaScriptObjectRef;
77
typedef unsigned int JavaScriptHostFuncRef;
88

9-
typedef enum {
10-
JavaScriptValueKind_Invalid = -1,
11-
JavaScriptValueKind_Boolean = 0,
12-
JavaScriptValueKind_String = 1,
13-
JavaScriptValueKind_Number = 2,
14-
JavaScriptValueKind_Object = 3,
15-
JavaScriptValueKind_Null = 4,
16-
JavaScriptValueKind_Undefined = 5,
17-
JavaScriptValueKind_Function = 6,
9+
typedef enum __attribute__((enum_extensibility(closed))) {
10+
JavaScriptValueKindInvalid = -1,
11+
JavaScriptValueKindBoolean = 0,
12+
JavaScriptValueKindString = 1,
13+
JavaScriptValueKindNumber = 2,
14+
JavaScriptValueKindObject = 3,
15+
JavaScriptValueKindNull = 4,
16+
JavaScriptValueKindUndefined = 5,
17+
JavaScriptValueKindFunction = 6,
1818
} JavaScriptValueKind;
1919

2020
typedef unsigned JavaScriptPayload1;

0 commit comments

Comments
 (0)
Please sign in to comment.