Changeset 263283 in webkit
- Timestamp:
- Jun 19, 2020 2:00:21 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JSTests/ChangeLog
r263240 r263283 1 2020-06-19 Mark Lam <mark.lam@apple.com> 2 3 Make $vm properties non-configurable, non-enumerable, and non-writable. 4 https://bugs.webkit.org/show_bug.cgi?id=213395 5 6 Reviewed by Saam Barati and Yusuke Suzuki. 7 8 * stress/dollarVM-properties-should-not-be-enumerable.js: Added. 9 1 10 2020-06-18 Saam Barati <sbarati@apple.com> 2 11 -
trunk/Source/JavaScriptCore/ChangeLog
r263277 r263283 1 2020-06-19 Mark Lam <mark.lam@apple.com> 2 3 Make $vm properties non-configurable, non-enumerable, and non-writable. 4 https://bugs.webkit.org/show_bug.cgi?id=213395 5 6 Reviewed by Saam Barati and Yusuke Suzuki. 7 8 $vm provides functions for test development and VM debugging. There's no reason 9 for them to be configurable, enumerable, and writable. 10 11 We particularly don't want them to be enumerable as this can trip up some fuzzers. 12 Fuzzers should not be fuzzing the $vm object which doesn't exist in real world 13 uses of JavaScriptCore. 14 15 * tools/JSDollarVM.cpp: 16 (JSC::JSDollarVM::finishCreation): 17 (JSC::JSDollarVM::addFunction): 18 (JSC::JSDollarVM::addConstructibleFunction): 19 1 20 2020-06-19 Tuomas Karkkainen <tuomas.webkit@apple.com> 2 21 -
trunk/Source/JavaScriptCore/tools/JSDollarVM.cpp
r263277 r263283 3095 3095 } 3096 3096 3097 constexpr unsigned jsDollarVMPropertyAttributes = PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum | PropertyAttribute::DontDelete; 3098 3097 3099 void JSDollarVM::finishCreation(VM& vm) 3098 3100 { … … 3115 3117 addFunction(vm, "breakpoint", functionBreakpoint, 0); 3116 3118 3117 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "dfgTrue"), 0, functionDFGTrue, DFGTrueIntrinsic, static_cast<unsigned>(PropertyAttribute::DontEnum));3118 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "ftlTrue"), 0, functionFTLTrue, FTLTrueIntrinsic, static_cast<unsigned>(PropertyAttribute::DontEnum));3119 3120 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuMfence"), 0, functionCpuMfence, CPUMfenceIntrinsic, 0);3121 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuRdtsc"), 0, functionCpuRdtsc, CPURdtscIntrinsic, 0);3122 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuCpuid"), 0, functionCpuCpuid, CPUCpuidIntrinsic, 0);3123 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuPause"), 0, functionCpuPause, CPUPauseIntrinsic, 0);3119 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "dfgTrue"), 0, functionDFGTrue, DFGTrueIntrinsic, jsDollarVMPropertyAttributes); 3120 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "ftlTrue"), 0, functionFTLTrue, FTLTrueIntrinsic, jsDollarVMPropertyAttributes); 3121 3122 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuMfence"), 0, functionCpuMfence, CPUMfenceIntrinsic, jsDollarVMPropertyAttributes); 3123 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuRdtsc"), 0, functionCpuRdtsc, CPURdtscIntrinsic, jsDollarVMPropertyAttributes); 3124 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuCpuid"), 0, functionCpuCpuid, CPUCpuidIntrinsic, jsDollarVMPropertyAttributes); 3125 putDirectNativeFunction(vm, globalObject, Identifier::fromString(vm, "cpuPause"), 0, functionCpuPause, CPUPauseIntrinsic, jsDollarVMPropertyAttributes); 3124 3126 addFunction(vm, "cpuClflush", functionCpuClflush, 2); 3125 3127 … … 3244 3246 DollarVMAssertScope assertScope; 3245 3247 Identifier identifier = Identifier::fromString(vm, name); 3246 putDirect(vm, identifier, JSFunction::create(vm, globalObject, arguments, identifier.string(), function) );3248 putDirect(vm, identifier, JSFunction::create(vm, globalObject, arguments, identifier.string(), function), jsDollarVMPropertyAttributes); 3247 3249 } 3248 3250 … … 3251 3253 DollarVMAssertScope assertScope; 3252 3254 Identifier identifier = Identifier::fromString(vm, name); 3253 putDirect(vm, identifier, JSFunction::create(vm, globalObject, arguments, identifier.string(), function, NoIntrinsic, function) );3255 putDirect(vm, identifier, JSFunction::create(vm, globalObject, arguments, identifier.string(), function, NoIntrinsic, function), jsDollarVMPropertyAttributes); 3254 3256 } 3255 3257
Note: See TracChangeset
for help on using the changeset viewer.