Move Symbol API to SPI
authorkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Sep 2018 20:04:27 +0000 (20:04 +0000)
committerkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Sep 2018 20:04:27 +0000 (20:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=189946

Reviewed by Michael Saboff.

Some of the property access methods on JSValue needed to be moved
to a category so that SPI overloads don't result in a compiler
error for internal users.

Additionally, this patch does not move the new enum entry for
Symbols in the JSType enumeration.

* API/JSObjectRef.h:
* API/JSObjectRefPrivate.h:
* API/JSValue.h:
* API/JSValuePrivate.h:
* API/JSValueRef.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236520 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/API/JSObjectRef.h
Source/JavaScriptCore/API/JSObjectRefPrivate.h
Source/JavaScriptCore/API/JSValue.h
Source/JavaScriptCore/API/JSValuePrivate.h
Source/JavaScriptCore/API/JSValueRef.h
Source/JavaScriptCore/ChangeLog

index 973abc3..0e2e7d4 100644 (file)
@@ -555,54 +555,6 @@ JS_EXPORT bool JSObjectDeleteProperty(JSContextRef ctx, JSObjectRef object, JSSt
 
 /*!
 @function
-@abstract Tests whether an object has a given property using a JSValueRef as the property key.
-@param object The JSObject to test.
-@param propertyKey A JSValueRef containing the property key to use when looking up the property.
-@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
-@result true if the object has a property whose name matches propertyKey, otherwise false.
-@discussion This function is the same as performing "propertyKey in object" from JavaScript.
-*/
-JS_EXPORT bool JSObjectHasPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
-@function
-@abstract Gets a property from an object using a JSValueRef as the property key.
-@param ctx The execution context to use.
-@param object The JSObject whose property you want to get.
-@param propertyKey A JSValueRef containing the property key to use when looking up the property.
-@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
-@result The property's value if object has the property key, otherwise the undefined value.
-@discussion This function is the same as performing "object[propertyKey]" from JavaScript.
-*/
-JS_EXPORT JSValueRef JSObjectGetPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
-@function
-@abstract Sets a property on an object using a JSValueRef as the property key.
-@param ctx The execution context to use.
-@param object The JSObject whose property you want to set.
-@param propertyKey A JSValueRef containing the property key to use when looking up the property.
-@param value A JSValueRef to use as the property's value.
-@param attributes A logically ORed set of JSPropertyAttributes to give to the property.
-@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
-@discussion This function is the same as performing "object[propertyKey] = value" from JavaScript.
-*/
-JS_EXPORT void JSObjectSetPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
-@function
-@abstract Deletes a property from an object using a JSValueRef as the property key.
-@param ctx The execution context to use.
-@param object The JSObject whose property you want to delete.
-@param propertyKey A JSValueRef containing the property key to use when looking up the property.
-@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
-@result true if the delete operation succeeds, otherwise false (for example, if the property has the kJSPropertyAttributeDontDelete attribute set).
-@discussion This function is the same as performing "delete object[propertyKey]" from JavaScript.
-*/
-JS_EXPORT bool JSObjectDeletePropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
-@function
 @abstract Gets a property from an object by numeric index.
 @param ctx The execution context to use.
 @param object The JSObject whose property you want to get.
index 0a95c8f..6ce9743 100644 (file)
@@ -81,7 +81,64 @@ JS_EXPORT JSGlobalContextRef JSObjectGetGlobalContext(JSObjectRef object);
  @result A JSObject that is a promise or NULL if an exception occurred.
  */
 JS_EXPORT JSObjectRef JSObjectMakeDeferredPromise(JSContextRef ctx, JSObjectRef* resolve, JSObjectRef* reject, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-    
+
+/*!
+ @function
+ @abstract Tests whether an object has a given property using a JSValueRef as the property key.
+ @param object The JSObject to test.
+ @param propertyKey A JSValueRef containing the property key to use when looking up the property.
+ @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
+ @result true if the object has a property whose name matches propertyKey, otherwise false.
+ @discussion This function is the same as performing "propertyKey in object" from JavaScript.
+ */
+JS_EXPORT bool JSObjectHasPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
+/*!
+ @function
+ @abstract Gets a property from an object using a JSValueRef as the property key.
+ @param ctx The execution context to use.
+ @param object The JSObject whose property you want to get.
+ @param propertyKey A JSValueRef containing the property key to use when looking up the property.
+ @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
+ @result The property's value if object has the property key, otherwise the undefined value.
+ @discussion This function is the same as performing "object[propertyKey]" from JavaScript.
+ */
+JS_EXPORT JSValueRef JSObjectGetPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
+/*!
+ @function
+ @abstract Sets a property on an object using a JSValueRef as the property key.
+ @param ctx The execution context to use.
+ @param object The JSObject whose property you want to set.
+ @param propertyKey A JSValueRef containing the property key to use when looking up the property.
+ @param value A JSValueRef to use as the property's value.
+ @param attributes A logically ORed set of JSPropertyAttributes to give to the property.
+ @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
+ @discussion This function is the same as performing "object[propertyKey] = value" from JavaScript.
+ */
+JS_EXPORT void JSObjectSetPropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
+/*!
+ @function
+ @abstract Deletes a property from an object using a JSValueRef as the property key.
+ @param ctx The execution context to use.
+ @param object The JSObject whose property you want to delete.
+ @param propertyKey A JSValueRef containing the property key to use when looking up the property.
+ @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
+ @result true if the delete operation succeeds, otherwise false (for example, if the property has the kJSPropertyAttributeDontDelete attribute set).
+ @discussion This function is the same as performing "delete object[propertyKey]" from JavaScript.
+ */
+JS_EXPORT bool JSObjectDeletePropertyForKey(JSContextRef ctx, JSObjectRef object, JSValueRef propertyKey, JSValueRef* exception) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
+/*!
+ @function
+ @abstract       Tests whether a JavaScript value's type is the symbol type.
+ @param ctx      The execution context to use.
+ @param value    The JSValue to test.
+ @result         true if value's type is the symbol type, otherwise false.
+ */
+JS_EXPORT bool JSValueIsSymbol(JSContextRef ctx, JSValueRef value) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
 #ifdef __cplusplus
 }
 #endif
index 552d470..aa3ae51 100644 (file)
 NS_CLASS_AVAILABLE(10_9, 7_0)
 @interface JSValue : NSObject
 
-#if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < JSC_MAC_VERSION_TBA) || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < JSC_IOS_VERSION_TBA)
-typedef NSString *JSValueProperty;
-#else
-typedef id JSValueProperty;
-#endif
-
 /*!
 @property
 @abstract The JSContext that this value originates from.
@@ -155,15 +149,6 @@ typedef id JSValueProperty;
 + (JSValue *)valueWithUndefinedInContext:(JSContext *)context;
 
 /*!
- @method
- @abstract Create a new, unique, symbol object.
- @param description The description of the symbol object being created.
- @param context The JSContext to which the resulting JSValue belongs.
- @result The JSValue representing a unique JavaScript value with type symbol.
- */
-+ (JSValue *)valueWithNewSymbolFromDescription:(NSString *)description inContext:(JSContext *)context JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
 @methodgroup Converting to Objective-C Types
 @discussion When converting between JavaScript values and Objective-C objects a copy is
  performed. Values of types listed below are copied to the corresponding
@@ -318,67 +303,6 @@ typedef id JSValueProperty;
 - (NSDictionary *)toDictionary;
 
 /*!
-@methodgroup Accessing Properties
-*/
-
-/*!
-@method
-@abstract Access a property of a JSValue.
-@result The JSValue for the requested property or the JSValue <code>undefined</code> 
- if the property does not exist.
-@discussion Corresponds to the JavaScript operation <code>object[property]</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
-*/
-- (JSValue *)valueForProperty:(JSValueProperty)property;
-
-/*!
-@method
-@abstract Set a property on a JSValue.
-@discussion Corresponds to the JavaScript operation <code>object[property] = value</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
-*/
-- (void)setValue:(id)value forProperty:(JSValueProperty)property;
-
-/*!
-@method
-@abstract Delete a property from a JSValue.
-@result YES if deletion is successful, NO otherwise.
-@discussion Corresponds to the JavaScript operation <code>delete object[property]</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
-*/
-- (BOOL)deleteProperty:(JSValueProperty)property;
-
-/*!
-@method
-@abstract Check if a JSValue has a property.
-@discussion This method has the same function as the JavaScript operator <code>in</code>.
-@result Returns YES if property is present on the value.
-@discussion Corresponds to the JavaScript operation <code>property in object</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
-*/
-- (BOOL)hasProperty:(JSValueProperty)property;
-
-/*!
-@method
-@abstract Define properties with custom descriptors on JSValues.
-@discussion This method may be used to create a data or accessor property on an object.
- This method operates in accordance with the Object.defineProperty method in the JavaScript language. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
-*/
-- (void)defineProperty:(JSValueProperty)property descriptor:(id)descriptor;
-
-/*!
-@method
-@abstract Access an indexed (numerical) property on a JSValue.
-@result The JSValue for the property at the specified index. 
- Returns the JavaScript value <code>undefined</code> if no property exists at that index. 
-*/
-- (JSValue *)valueAtIndex:(NSUInteger)index;
-
-/*!
-@method
-@abstract Set an indexed (numerical) property on a JSValue.
-@discussion For JSValues that are JavaScript arrays, indices greater than 
- UINT_MAX - 1 will not affect the length of the array.
-*/
-- (void)setValue:(id)value atIndex:(NSUInteger)index;
-
-/*!
 @functiongroup Checking JavaScript Types
 */
 
@@ -423,12 +347,6 @@ typedef id JSValueProperty;
 
 /*!
 @property
-@abstract Check if a JSValue is a symbol.
-*/
-@property (readonly) BOOL isSymbol JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
-/*!
-@property
 @abstract Check if a JSValue is an array.
 */ 
 @property (readonly) BOOL isArray JSC_API_AVAILABLE(macosx(10.11), ios(9.0));
@@ -581,6 +499,68 @@ Create a JSValue from a CGRect.
 @end
 
 /*!
+ @category
+ @discussion These methods enable querying properties on a JSValue.
+ */
+@interface JSValue (PropertyAccess)
+
+/*!
+ @method
+ @abstract Access a property of a JSValue.
+ @result The JSValue for the requested property or the JSValue <code>undefined</code>
+ if the property does not exist.
+ */
+- (JSValue *)valueForProperty:(NSString *)property;
+
+/*!
+ @method
+ @abstract Set a property on a JSValue.
+ */
+- (void)setValue:(id)value forProperty:(NSString *)property;
+
+/*!
+ @method
+ @abstract Delete a property from a JSValue.
+ @result YES if deletion is successful, NO otherwise.
+ */
+- (BOOL)deleteProperty:(NSString *)property;
+
+/*!
+ @method
+ @abstract Check if a JSValue has a property.
+ @discussion This method has the same function as the JavaScript operator <code>in</code>.
+ @result Returns YES if property is present on the value.
+ */
+- (BOOL)hasProperty:(NSString *)property;
+
+/*!
+ @method
+ @abstract Define properties with custom descriptors on JSValues.
+ @discussion This method may be used to create a data or accessor property on an object.
+ This method operates in accordance with the Object.defineProperty method in the
+ JavaScript language.
+ */
+- (void)defineProperty:(NSString *)property descriptor:(id)descriptor;
+
+/*!
+ @method
+ @abstract Access an indexed (numerical) property on a JSValue.
+ @result The JSValue for the property at the specified index.
+ Returns the JavaScript value <code>undefined</code> if no property exists at that index.
+ */
+- (JSValue *)valueAtIndex:(NSUInteger)index;
+
+/*!
+ @method
+ @abstract Set an indexed (numerical) property on a JSValue.
+ @discussion For JSValues that are JavaScript arrays, indices greater than
+ UINT_MAX - 1 will not affect the length of the array.
+ */
+- (void)setValue:(id)value atIndex:(NSUInteger)index;
+
+@end
+
+/*!
 @category
 @discussion Instances of JSValue implement the following methods in order to enable
  support for subscript access by key and index, for example:
@@ -594,16 +574,13 @@ Create a JSValue from a CGRect.
 @/textblock
 
  An object key passed as a subscript will be converted to a JavaScript value,
- and then the value using the same rules as <code>valueWithObject:inContext:</code>. In macOS
- TBA and iOS TBA and below, the <code>key</code> argument of
- <code>setObject:object forKeyedSubscript:key</code> was restricted to an
- <code>NSString <NSCopying> *</code> but that restriction was never used.
+ and then the value converted to a string used as a property name.
 */
 @interface JSValue (SubscriptSupport)
 
-- (JSValue *)objectForKeyedSubscript:(JSValueProperty)key;
+- (JSValue *)objectForKeyedSubscript:(id)key;
 - (JSValue *)objectAtIndexedSubscript:(NSUInteger)index;
-- (void)setObject:(id)object forKeyedSubscript:(JSValueProperty)key;
+- (void)setObject:(id)object forKeyedSubscript:(NSObject <NSCopying> *)key;
 - (void)setObject:(id)object atIndexedSubscript:(NSUInteger)index;
 
 @end
index b26f007..8af29da 100644 (file)
 
 @interface JSValue(JSPrivate)
 
+#if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < JSC_MAC_VERSION_TBA) || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < JSC_IOS_VERSION_TBA)
+typedef NSString *JSValueProperty;
+#else
+typedef id JSValueProperty;
+#endif
+
+/*!
+ @method
+ @abstract Create a new, unique, symbol object.
+ @param description The description of the symbol object being created.
+ @param context The JSContext to which the resulting JSValue belongs.
+ @result The JSValue representing a unique JavaScript value with type symbol.
+ */
++ (JSValue *)valueWithNewSymbolFromDescription:(NSString *)description inContext:(JSContext *)context JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
+/*!
+ @method
+ @abstract Access a property of a JSValue.
+ @result The JSValue for the requested property or the JSValue <code>undefined</code>
+ if the property does not exist.
+ @discussion Corresponds to the JavaScript operation <code>object[property]</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
+ */
+- (JSValue *)valueForProperty:(JSValueProperty)property;
+
+/*!
+ @method
+ @abstract Set a property on a JSValue.
+ @discussion Corresponds to the JavaScript operation <code>object[property] = value</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
+ */
+- (void)setValue:(id)value forProperty:(JSValueProperty)property;
+
+/*!
+ @method
+ @abstract Delete a property from a JSValue.
+ @result YES if deletion is successful, NO otherwise.
+ @discussion Corresponds to the JavaScript operation <code>delete object[property]</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
+ */
+- (BOOL)deleteProperty:(JSValueProperty)property;
+
+/*!
+ @method
+ @abstract Check if a JSValue has a property.
+ @discussion This method has the same function as the JavaScript operator <code>in</code>.
+ @result Returns YES if property is present on the value.
+ @discussion Corresponds to the JavaScript operation <code>property in object</code>. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
+ */
+- (BOOL)hasProperty:(JSValueProperty)property;
+
+/*!
+ @method
+ @abstract Define properties with custom descriptors on JSValues.
+ @discussion This method may be used to create a data or accessor property on an object.
+ This method operates in accordance with the Object.defineProperty method in the JavaScript language. After macOS TBA and iOS TBA, 'property' can be any 'id' and will be converted to a JSValue using the conversion rules of <code>valueWithObject:inContext:</code>. Prior to macOS TBA and iOS TBA, 'property' was expected to be an NSString *.
+ */
+- (void)defineProperty:(JSValueProperty)property descriptor:(id)descriptor;
+
+/*!
+ @property
+ @abstract Check if a JSValue is a symbol.
+ */
+@property (readonly) BOOL isSymbol JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
+
 /*!
  @method
  @abstract Create a new promise object using the provided executor callback.
 
 @end
 
+/*!
+ @category
+ @discussion Instances of JSValue implement the following methods in order to enable
+ support for subscript access by key and index, for example:
+
+ @textblock
+ JSValue *objectA, *objectB;
+ JSValue *v1 = object[@"X"]; // Get value for property "X" from 'object'.
+ JSValue *v2 = object[42];   // Get value for index 42 from 'object'.
+ object[@"Y"] = v1;          // Assign 'v1' to property "Y" of 'object'.
+ object[101] = v2;           // Assign 'v2' to index 101 of 'object'.
+ @/textblock
+
+ An object key passed as a subscript will be converted to a JavaScript value,
+ and then the value using the same rules as <code>valueWithObject:inContext:</code>. In macOS
+ TBA and iOS TBA and below, the <code>key</code> argument of
+ <code>setObject:object forKeyedSubscript:key</code> was restricted to an
+ <code>NSString <NSCopying> *</code> but that restriction was never used.
+ */
+@interface JSValue (SubscriptSupportPrivate)
+
+- (JSValue *)objectForKeyedSubscript:(JSValueProperty)key;
+- (JSValue *)objectAtIndexedSubscript:(NSUInteger)index;
+- (void)setObject:(id)object forKeyedSubscript:(JSValueProperty)key;
+- (void)setObject:(id)object atIndexedSubscript:(NSUInteger)index;
+
+@end
+
 #endif // JSC_OBJC_API_ENABLED
index a427d98..5766ba2 100644 (file)
@@ -151,15 +151,6 @@ JS_EXPORT bool JSValueIsString(JSContextRef ctx, JSValueRef value);
 */
 JS_EXPORT bool JSValueIsObject(JSContextRef ctx, JSValueRef value);
 
-/*!
-@function
-@abstract       Tests whether a JavaScript value's type is the symbol type.
-@param ctx      The execution context to use.
-@param value    The JSValue to test.
-@result         true if value's type is the symbol type, otherwise false.
-*/
-JS_EXPORT bool JSValueIsSymbol(JSContextRef ctx, JSValueRef value) JSC_API_AVAILABLE(macosx(JSC_MAC_TBA), ios(JSC_IOS_TBA));
-
 
 /*!
 @function
index 8b5fcbb..2d41aa0 100644 (file)
@@ -1,3 +1,23 @@
+2018-09-25  Keith Miller  <keith_miller@apple.com>
+
+        Move Symbol API to SPI
+        https://bugs.webkit.org/show_bug.cgi?id=189946
+
+        Reviewed by Michael Saboff.
+
+        Some of the property access methods on JSValue needed to be moved
+        to a category so that SPI overloads don't result in a compiler
+        error for internal users.
+
+        Additionally, this patch does not move the new enum entry for
+        Symbols in the JSType enumeration.
+
+        * API/JSObjectRef.h:
+        * API/JSObjectRefPrivate.h:
+        * API/JSValue.h:
+        * API/JSValuePrivate.h:
+        * API/JSValueRef.h:
+
 2018-09-26  Keith Miller  <keith_miller@apple.com>
 
         We should zero unused property storage when rebalancing array storage.