chrome.storage.local.set usando un nombre de clave variable

En una extensión de Google Chrome, quiero usarchrome.storage.local (a diferencia de localStorage) porque:

Con los pares clave-valor, el valor puede ser cualquier objeto (a diferencia de la cadena)Cambios en el modelo de datos utilizando setter.storage.set puede desencadenar un detector de eventos

Utilizandostorage.set, ¿cómo puedo tener un nombre de clave variable?

Nota: Si no uso el setter, puedo hacerlostorage[v1], pero los cambios en el objeto no activarán el detector de eventos.

var storage = chrome.storage.local;
var v1 = 'k1';

storage.set({v1:'s1'});

storage.get(v1,function(result){
    console.log(v1,result);
    //console output = k1 {}
});
storage.get('v1',function(result){
    console.log(result);
    //console output = {v1:'s1'}
});

Respuestas a la pregunta(2)

Su respuesta a la pregunta