See https://tc39.github.io/ecma262/#sec-object.freeze and https://tc39.github.io/ecma262/#sec-setintegritylevel. If O.[[PreventExtensions]]() returns false, we should throw a TypeError but currently does not.
Created attachment 290987 [details] repro test case.
Created attachment 290994 [details] proposed patch.
Comment on attachment 290994 [details] proposed patch. Bad patch. That's what I get for making last minute changes.
Created attachment 290996 [details] proposed patch.
Comment on attachment 290996 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=290996&action=review r=me > Source/JavaScriptCore/runtime/ObjectConstructor.cpp:480 > +template<IntegrityLevel level> > +bool setIntegrityLevel(ExecState* exec, VM& vm, JSObject* object) Maybe it's worth including a link to the spec here. > Source/JavaScriptCore/runtime/ObjectConstructor.cpp:496 > + if (exec->propertyNames().isPrivateName(propertyName)) You should use vm to get the PropertyNames.
Thanks for the review. I've made the suggested changes. Landed in r206948: <http://trac.webkit.org/r206948>.