Skip to content

Commit 1d6975b

Browse files
committed
Merge branch 'develop' into publish/2.1.0
2 parents ca93912 + 3ec14c9 commit 1d6975b

4 files changed

Lines changed: 20 additions & 4 deletions

File tree

src/OneScript.Core/Contexts/BslFieldInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ namespace OneScript.Contexts
1616
public abstract class BslFieldInfo : FieldInfo, INameAndAliasProvider
1717
{
1818
private AnnotationHolder _annotations;
19-
20-
public string Alias => null;
21-
19+
20+
public abstract string Alias { get; }
21+
2222
private AnnotationHolder Annotations
2323
{
2424
get

src/OneScript.Core/Contexts/BslScriptFieldInfo.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,19 @@ public class BslScriptFieldInfo : BslFieldInfo, IBuildableMember
2323
private Type _declaringType;
2424
private bool _isExported;
2525
private string _name;
26+
private string _alias;
2627
private Type _dataType = typeof(BslValue);
2728
private int _dispId = -1;
2829

2930
internal BslScriptFieldInfo(string name)
3031
{
3132
_name = name;
33+
_alias = null;
3234
}
3335

3436
public override Type DeclaringType => _declaringType;
3537
public override string Name => _name;
38+
public override string Alias => _alias;
3639
public override Type ReflectedType => _declaringType;
3740

3841
public int DispatchId => _dispId;
@@ -63,6 +66,7 @@ void IBuildableMember.SetName(string name)
6366

6467
void IBuildableMember.SetAlias(string alias)
6568
{
69+
_alias = alias;
6670
}
6771

6872
void IBuildableMember.SetExportFlag(bool isExport)

src/OneScript.Native/Runtime/BuiltInFunctions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,12 @@ public static int StrEntryCount(string where, string what)
265265
[ContextMethod("НачалоМесяца", "BegOfMonth")]
266266
public static DateTime BegOfMonth(DateTime date) => new DateTime(date.Year, date.Month, 1);
267267

268+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
269+
[ContextMethod("НачалоНедели", "BegOfWeek")]
270+
public static DateTime BegOfWeek(DateTime date)
271+
=> new DateTime(date.Year, date.Month, date.Day)
272+
.AddDays(-((int)date.DayOfWeek+6)%7);
273+
268274
[MethodImpl(MethodImplOptions.AggressiveInlining)]
269275
[ContextMethod("НачалоДня", "BegOfDay")]
270276
public static DateTime BegOfDay(DateTime date) => new DateTime(date.Year, date.Month, date.Day);
@@ -321,6 +327,12 @@ public static DateTime EndOfMonth(DateTime date)
321327
return new DateTime(year, month, DateTime.DaysInMonth(year, month), 23, 59, 59);
322328
}
323329

330+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
331+
[ContextMethod("КонецНедели", "EndOfWeek")]
332+
public static DateTime EndOfWeek(DateTime date)
333+
=> new DateTime(date.Year, date.Month, date.Day, 23, 59, 59)
334+
.AddDays((7-(int)date.DayOfWeek) % 7);
335+
324336
[MethodImpl(MethodImplOptions.AggressiveInlining)]
325337
[ContextMethod("КонецДня", "EndOfDay")]
326338
public static DateTime EndOfDay(DateTime date) => new DateTime(date.Year, date.Month, date.Day, 23, 59, 59);

src/ScriptEngine/Machine/Contexts/ThisAwareScriptedObjectBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ private static void CompileTimeSymbols(TypeSymbolsProviderFactory providerFactor
9999
.Name(THISOBJ_RU)
100100
.Alias(THISOBJ_EN)
101101
.ValueType(typeof(ThisAwareScriptedObjectBase))
102-
.SetDispatchingIndex(0)
102+
.SetDispatchingIndex(THISOBJ_VARIABLE_INDEX)
103103
.Build()
104104
.ToSymbol());
105105
}

0 commit comments

Comments
 (0)