Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GAS V8 Runtime updates #15

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions GmailUtils.gs
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@ function formatEmails_(emails) {
* @param {string} class
* @return {boolean}
*/
function isa_(obj, class) {
return typeof obj == 'object' && typeof obj.constructor == 'undefined' && obj.toString() == class;
function isa_(obj, className) {
return typeof obj == 'object' && (typeof obj.constructor == 'undefined' || typeof obj.constructor == 'function') && obj.toString() == className;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

V8 is now supporting class and constructors. I've tested this update and it works for me

}

/**
Expand All @@ -500,8 +500,21 @@ function defaults_(options, defaults) {
* @return {string}
*/
function localTimezone_() {
var timezone = new Date().toTimeString().match(/\(([a-z0-9]+)\)/i);
return timezone.length ? timezone[1] : 'GMT';
// 19:26:50 GMT-0700 (Pacific Daylight Time)
// 19:29:40 GMT-0700 (PDT)
//Logger.log('Hello=' + new Date().toTimeString());
//console.log('Hello=' + new Date().toTimeString());
//var timezone = new Date().toTimeString().match(/\(([a-z 0-9]+)\)/i);
//return timezone.length ? timezone[1] : 'GMT';
var tz = gettz_();
return tz ? tz : 'GMT';
}

function gettz_() {
var d = new Date(); // now, or the specific date in question
var s = d.toLocaleString("en", {timeZoneName: "short"}).split(' ').pop();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might fix part of the issue. In my case (US Mountain), the value is still not supported. The safest way is to get the timezone value from App script itself. I'll send a pull request for the code I have been using.

//Logger.log(s);
return s;
}

/**
Expand All @@ -525,4 +538,4 @@ function md5_(str) {
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not necessary